美文网首页
图解git指令(一)

图解git指令(一)

作者: _royalpioneer | 来源:发表于2020-08-14 01:20 被阅读0次

我们经常会使用git进行项目版本管理,但是你真的了解每条指令都在做什么吗?本文就带你看看每条指令的作用吧~

最初状态

我们约定一下,最初只有一条提交记录的状态,如图:


本地仓库最初状态

git commit

新建1次提交


git commit

git branch Tom

git学习.png

git checkout Tom

git学习.png

master和Tom各自提交一次

git学习.png

git merge Tom

git学习.png

git checkout Tom; git merge master

git学习.png

git rebase Tom

我们回到master 和 Tom分支合并前的状态,并执行上述指令


git学习.png

git checkout Tom; git rebase master

master继承自Tom,故只需移动Tom指针


git学习.png

git checkout C3

此处假设 C0,C1,C2,C3,C4,C5均是提交记录的哈希值


git学习.png

git branch -f master HEAD^

^是HEAD指针上一个提交记录
~n是HEAD指针上n个提交记录
^n是HEAD指针的第n个双亲节点


git学习.png

从HEAD分离回到正常状态--git checkout Tom

git学习.png

撤销提交之git reset HEAD^

git学习.png

撤销变更之 git revert HEAD^

C2和C2''内容保持一致


git学习.png

整理提交记录 git cherry-pick

依次执行以下指令,将所有提交按顺序放入master分支中
git checkout master;
git cherry-pick C2 C3 C4
此处依旧约定C1 C2 C3 C4为提交记录的哈希值


git学习.png

git tag

我们再像看连环画一样地快速看一眼上述的配图,是不是发现了什么?虽然分支可以移来移去的,但是提交记录的位置是不会变动的,我们可以使用git tag对这些提交记录打标签
执行 git tag version-2.0 HEAD~2


git学习.png

git tag的意义?

tag是commit id的一个引用,因此 可以使用 git checkout version-2.0 替代冗长的 git checkout 0x12hg13cgh213v321


git学习.png

题外话

分离出HEAD指针是非常危险的,在分离头指针的状态下,一般正经的终端都会给出明显的提示,如果在回到master(其它分支一样)前没有对提交进行合并或者打tag,那么之前的修改提交基本都会丢失。
执行 git commit


git学习.png

执行 git checkout master


git学习.png

如果你真的学会了我之前所讲的内容,你会很容易的发现哈希值为C5的提交记录已经是一个孤立的节点了(中间的C3也是),是无法被追踪到的,因此这次修改提交是徒劳的。
警惕以下情况!!!
git checkout C4
(此处仍约定C4为该次提交记录的哈希值)


git学习.png

可以看看这位小哥遇到过的坑 传送门点我

本文完

https://git-scm.com/book/en/v2

相关文章

  • 图解git指令(一)

    我们经常会使用git进行项目版本管理,但是你真的了解每条指令都在做什么吗?本文就带你看看每条指令的作用吧~ 最初状...

  • git远程仓库关联

    一.GitHub常用指令 git的基本使用指令:git init ...

  • 初识git,用git 上传项目到GitHub

    分享一些git基本指令,不喜勿喷! git的基本使用指令 git init 初始化git仓库 git add . ...

  • Linux和git指令

    git常用指令 1.基本指令 git init —— 新建git仓库git add 文件/文件夹 —— 将...

  • git设置指令别名

    git设置指令别名 git拥有许多指令,并且允许为这些指令设置别名, 提高开发效率.通过config命令对一些指令...

  • Git常用指令

    Git指令 git status git add ZiguiXiaoYuan git add ZiguiXiaoY...

  • 组件化(第一篇)

    组件化 git 常用操作指令 cocoapods的基本使用 cocoapods本地私有库 一、git 常用操作指令...

  • 2019-03-17

    git 指令git commit -a -m ''这里再写上自己的注释"这句话指令相当于执行了 git a...

  • git常用命令(三)

    git常用指令(一)[https://www.jianshu.com/p/3b80461fb59b]git常用指令...

  • git常用指令(二)

    git常用指令(一)[https://www.jianshu.com/p/3b80461fb59b]git常用指令...

网友评论

      本文标题:图解git指令(一)

      本文链接:https://www.haomeiwen.com/subject/yxswdktx.html