工作小总结

Git 命令设计解析

Git命令设计解析1.基本概念HEAD:当前commit的引用branch:对commit的引用gitcommitgitlogbranchmaster:默认 master` ,其实是一个特殊的 `branch`:它是 Git 的默认 `branchmaster主要有两个特点:新创建的repository(仓库)是没有任何 com

Git 命令设计解析

1.基本概念

HEAD:当前 commit 的引用

branch:对commit的引用

git commit

img

git log

branch

master: 默认

 master` ,其实是一个特殊的 `branch`:它是 Git 的默认 `branch

master主要有两个特点:

  1. 新创建的 repository(仓库)是没有任何 commit 的。但在它创建第一个 commit 时,会把 master 指向它,并把 HEAD 指向 master。

    img

  2. 当有人使用 git clone 时,除了从远程仓库把 .git 这个仓库目录下载到工作目录中,还会 checkout (签出) master(checkout 的意思就是把某个 commit 作为当前 commit,把 HEAD 移动过去,并把工作目录的文件内容替换成这个 commit 所对应的内容)。

img

branch 的通俗化理解

branch 理解为从初始 commit 到 branch 所指向的 commit 之间的所有 commits 的一个「串」。例如下面这张图:

branch的理解

1.所有的 branch 之间都是平等的。

img

  1. branch包含了从初始commit` 到它的所有路径,而不是一条路径。并且,这些路径之间也是彼此平等的。

img

git checkout -b feature1

git commit

img

git checkout master

git commit

img

删除 branch

git branch -d feature1

img

需要说明的有两点:

1. `HEAD` 指向的 `branch` 不能删除。如果要删除 `HEAD` 指向的 `branch`,需要先用 `checkout` 把 `HEAD` 指向其他地方。2. 由于 Git 中的 `branch` 只是一个引用,所以删除 `branch` 的操作也只会删掉这个引用,并不会删除任何的 `commit`。(不过如果一个 `commit` 不在任何一个 `branch` 的「路径」上,或者换句话说,如果没有任何一个 `branch` 可以回溯到这条 `commit`(也许可以称为野生 `commit`?),那么在一定时间后,它会被 Git 的回收机

原创不易,完成人机校验,阅读全文

相关推荐