Git新手入门教程

140 阅读2分钟

我正在参加「掘金·启航计划」 废话不多说,直接开搞!

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 :打开文本框 调整顺序或者删除 选中的三步