Git 内部实现

git branch

git branch dev,在当前提交上生成一个新分支。在.git文件夹的反应就是在.git/refs/heads下面多了一个 dev 文件,这个文件的内容就是当前提交对象的 SHA-1 值(HEAD 指向的提交对象)。Git 内部的操作是git update-ref refs/heads/dev HEAD

git checkout

首先关于分支,可以想象成多个分身,虽然有这么多个分身,但是肉体只有一个,分身乏术,每次只能去往某一个分身工作。而所谓的检出分支,就是切换到另一个分身工作。关于当前是处于哪个分身里面,是由 HEAD 这个符号链接决定的。在主体工作的时候,HEAD 指向refs/heads/master,想要去往 dev 分身的时候,则让 HEAD 指向refs/heads/dev。虽然查看当前分支有一万种方法,但是值得一提的是底层命令是git symbolic-ref HEAD。当切换到 dev 分支的时候,底层发生的就是git symbolic-ref HEAD refs/heads/dev

results matching ""

    No results matching ""