.git的object Graph是一个有向无环图,一般情况下,一个分支只能有一个父亲;在分支情况下,两个分支可以有一个父亲;在合并情况下,一个分支可以有两个父亲。如下是对其进行实例讲解,可以帮助更好理解软件配置管理和版本控制。
根据对git一些指令的总结,尤其要注意head所指向的位置。
以下按照图中指令顺序依次讲解从而明确整个过程。
首先,git checkout -b iss53指令是增加一个分支isss53指向当前master所指向的位置,此时隐含head指向iss53。
git commit是增加一个分支c3指向当前master所指向的位置,然后让此时head所指向的分支即isss53指向c3(此时head仍指向iss53)。
git checkout master是让head再指向master。
git checkout -b hotfix是增加一个分支hotfix指向当前master所指向的位置,此时隐含head指向hotfix。
git commit是增加一个分支c4指向当前master所指向的位置,然后让此时head所指向的分支即hotfix指向c4(此时head仍指向iss53)。
git checkout master是让head再指向master。
git merge hotfix是由于hotfix和master处于同一层,故直接将master指向c4即可。