一、分支
1.创建分支
git branch bugFix
2.切换分支
git checkout bugFix
3.合并分支
git merge bugFixgit rebase master(切换在需要合并的分支上,例如bugFix)
4.删除分支
git branch -D bugFix
二、在提交树上移动
1.HEAD
git checkout C4(C4不是分支名而是具体的提交记录)不推荐理由:实际应用中,具体的提交记录是一串哈希值,非常长,40位(fed2da64c0efc5293...),并且看不见HEAD的位置,需要git log查看,不方便。
2.相对引用
(1)向上移动1个提交记录
git checkout bugFix^(bugFix的父节点)或git checkout HEAD^(HEAD向上移动1个提交记录)git checkout bugFix^^(bugFix的第二个父节点)
(2)向上移动多个提交记录,如~3
git checkout HEAD~3git branch -f master HEAD~3(将master分支强制指向HEAD的第三级父提交)
三、撤销变更
1.git reset分支记录退回
git reset HEAD~1不推荐理由:对大家一起使用的远程分支是无效的。
2.git revert
git revert HEAD(会多出一个新提交,并推送到远程仓库)
四、整理提交记录
1.git cherry-pick C3 C4 C7(将C3C4C7提交号复制到当前分支下)
git cherry-pick C3 C4 C7不推荐理由:提交记录的哈希值太长且不容易找
2.交互式rebase
git rebase -i HEAD~4(-i:)
五、本地栈式提交
git rebase -i HEAD~3(复制出一个分支)git branch -f master bugFix(将master强制指向bugFix的提交)
六、标签
git tag v1 C1(永远存在的分支,不会被提交记录所更新)
七、锚点
git describe bugFix输出格式:v1\_1\_gv1
八、覆盖本地,强制更新
git fetch --allgit reset --hard origin/master