一、用户管理
-
设置git用户名和邮箱:
- git config --global user.name "username"
- git config --global user.email "email"
-
查看用户名和邮箱:
- git config user.name
- git config user.email
二、分支管理
- 查看分支状态
- git status
- git show --stat
- 查看分支
- git branch
- 创建分支
- git branch [new branch name] [come from where]
- 切换分支
- git checkout [branch-name]
- 创建并切换分支
- git checkout -b [new_branch_name]
- 删除分支
- git branch -d [branch_name]
- 分支合并
- git checkout master + git merge [branch_name]
- 提交并推送分支
- git add .
- git commit -m “xxx”
- git push -u origin [origin_branch_name]
- git远程分支覆盖本地分支
- git fetch --all
- **git reset --hard origin/master **(这里master要修改为对应的分支名)
- git pull (解决可能的冲突)
三、文件管理
- 获取单个文件
- git checkout .
- git checkout [filename]
- 删除误增加的文件
- git clean -f
- 忘记切换分支,误将代码提交到了别的远程分支
- **git reset HEAD^1 ** #回滚提交 reset
- **git stash ** # 将被跟踪的内容stash, 新建的文件不用担心, 依旧是未跟踪文件.
- **git checkout -t origin/production -b issue-0 ** # 切换到正确分支(或者创建一个分支)
- **git stash pop ** # 将stash的内容pop出来
- **git add . ** # 提交和推送了
- **git commit -m ** "提交信息"
- **git push origin issue-0 **
- **git checkout production ** # 但原来的分支production依旧是多了一次提交, 这时候需要切回去, 提交一次
- **git push origin production ** -f # 这里要加上-f强制提交 - error: object file .git/objects/xx/xxxxx is empty
- 备份.git目录
- **cp -a .git .git-old **
- 根据修复提示删除空对象文件。根据最早的空文件提示也删除那个文件。
- **git fsck --full **
- **rm .git/objects/19/b45524e14258043923c2bc4d336269f1abc67f **
- 删除后再次查看修复提示,说明Head commit无效。
- **git fsck --full ** // 段错误 (核心已转储)% (3/256)
- **git reflog ** // fatal: bad object HEAD
- 找到当前分支Head的前两条数据。
- **tail -n 2 .git/logs/refs/heads/master **
- //注意,如果不是master分支,则.git/logs/refs/heads/branchName
- // a6f48ebd79ef39b2c43e5810fc96e95cc0867389 ed41eac57be18e8d112ca5bb898dd77c3b120321
- **tail -n 2 .git/logs/refs/heads/master **
- 第一条Head是无效的。我们需要确认第二条是我们的上次失败的commit的前一个提交。
- **git show ed41eac57be18e8d112ca5bb898dd77c3b120321 ** //输出信息为日志详细信息
- 设置确认的commit为HEAD commit
- **git update-ref HEAD ed41eac57be18e8d112ca5bb898dd77c3b120321 **
- 备份.git目录
四、运维管理
- 查看要回退到的版本号
- git log
- 删除本地缓存配置
- **git rm -r --cached . **
- **git add . **
- **git commit -m 'update .gitignore' **
本文由博客一文多发平台 OpenWrite 发布!
网友评论