Git基本命令探究

蓝咒 提交于 2019-11-28 15:02:56

  Git作为21世纪程序员必须掌握的基本技能,应该被深入研究。本周花费周末两天的时光,结合learngitbranching.js.org对Git的基本命令进行了一番学习。现将学习成果记录如下:

  1.循序渐进地介绍 Git 主要命令

  1.1 Git commit命令

  此命令用于创建一次提交记录。在完成代码更改(修复bug或者开发新功能)之后,可以使用git commit将代码提交到本地仓库。

  1.2 git branch命令

  此命令用于创建一个分支,比如 git branch newImage,此命令仅仅是创建了一个分支,但是并没有将当前工作分支切换到目标分支上。

  1.3 git merge命令

  此命令用于将分支合并。我们新建一个分支,在其上开发某个新功能,开发完成后需要将分支合并回主线上。

  执行git merge bugFix 后

  1.4 git rebase 命令

   git rebase是第二种合并分支的方法。Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。(Rebase 的优势就是可以创造更线性的提交历史,这听上去有些难以理解。如果只允许使用 Rebase 的话,代码库的提交历史将会变得异常清晰。)

  git rebase master后

  git rebase <目标分支> 作用是将当前分支合并到目标分支之后。

  2.Git 的超棒特性

  2.1 分离 HEAD

  HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。

  分离的 HEAD 就是让其指向了某个具体的提交记录而不是分支名。在命令执行之前的状态如下所示: 

  HEAD -> master -> C1

  HEAD 指向 master, master 指向 C1

  git checkout c1 

  2.2 相对引用 

  在实际生产中通过指定提交记录哈希值的方式在git移动是不方便的。因此提供了两个符号来进行方便的移动( ^ 和 ~ )。

  其中多个^可以连写,如^^^表示向上游移动四次。

  git checkout master^ 

  ~<number>可以指定向上游移动的次数。

  git checkout HEAD~4 

  另外git branch -f master HEAD~3  命令会将 master 分支强制指向 HEAD 的第 3 级父提交

  git branch -f master HEAD~3 

  2.3 撤销变更

  git中撤销变更有两个命令:git reset与git revert 

   git reset HEAD~后 

git revert HEAD~后

奇怪!在我们要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录 C2' 引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的。也就是说 C2' 的状态与 C1 是相同的。

revert 之后就可以把你的更改推送到远程仓库与别人分享啦。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!