我正在参加「掘金·启航计划」 废话不多说,直接开搞!
git commit:
相当于复制整个分支,但是会先把与上个版本的差异 打包然后直接用差异提交即可
git branch 分支名 :创建新分支
*代表当前分支
git checkout 分支名 : 切换分支
创建一个新的分支同时切换到新创建的分支:
git checkout -b
git checkout -b 分支名
git rebase 分支名 :
合并分支另外一种方法,更加线性的提交历史
如果想看 HEAD 指向,可以通过 cat .git/HEAD 查看, 如果 HEAD 指向的是一个引用,还可以用 git symbolic-ref HEAD 查看它的指向
分离HEAD: 分离的 HEAD 就是让其指向了某个具体的提交记录而不是分支名。在命令执行之前的状态如下所示: HEAD -> main -> C1 HEAD 指向 main, main 指向 C1 git checkout c1 就可以分离出来 head
相对引用:^ 向上移动一次 git checkout bugFix 操作符 (^) 就是把head移动到 bugFix的上一步
git branch -f main c6 : 移动 main分支到 c6 提交记录
git branch -f bugFix HEAD~1 :
移动 bugFix 分支到 HEAD 前一个提交记录
撤销
git reset :
撤销所有本记录 回退到上一个提交记录 !无法撤销远程分支 !(git reset HEAD~1)
git revert :创建一个新的提交记录 c2‘ 来记录撤销c2 之后的状态 也就是相当于c1(git revert HEAD)
如果你想将一些提交复制到当前所在的位置(HEAD)下面的话, Cherry-pick 是最直接的方式了。 记住 git cherry-pick c2 c4 是把c2 c4复制到 * 也就是head 的分支上 本地栈式提交
最后就差把 bugFix 分支里的工作合并回 main 分支了。可以选择通过 fast-forward 快速合并到 main 分支上,但这样的话 main 分支就会包含我这些调试语句了,应该还有更好的方式
实际我们只要让 Git 复制解决问题的那一个提交记录就可以了,我们可以使用 ●git rebase -i
●git cherry-pick
来达到目的。
git rebase -i HEAD~3 :打开文本框 调整顺序或者删除 选中的三步