首页 > 其他 > 详细

Git基本命令探究

时间:2019-08-26 12:56:57      阅读:74      评论:0      收藏:0      [点我收藏+]

  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 之后就可以把你的更改推送到远程仓库与别人分享啦。

 

Git基本命令探究

原文:https://www.cnblogs.com/YanFeiGao/p/11409732.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!