为什么我创建一个新分支并对其进行提交时,我没有看到它在我的图形中分支。
这是我正在做的代码:
git init
git add .
git commit -a
... other commits in here
git checkout -b mynewbranch
git add .
git commit -a
git checkout master
git merge mynewbranch
git add .
git commit -a
当我执行git log --graph
时,这是我期望在脑海中看到的* 47926e1 This is a commit back on master
\
* f3dc827 How come i am not seeing a branch in my tree
* 1cd3018 This should be on my new branch
/
* 47f3716 This is my third commit
* 878b018 This is my second commit
* 2db9f83 Initial commit
但我看到了这一点:
* 47926e1 This is a commit back on master
* f3dc827 How come i am not seeing a branch in my tree
* 1cd3018 This should be on my new branch
* 47f3716 This is my third commit
* 878b018 This is my second commit
* 2db9f83 Initial commit
我不明白吗?
答案 0 :(得分:6)
如果您在mynewbranch上工作时没有提交要求,那么您的历史记录将如您所示。在这种情况下,不需要实际合并;合并的主人与mynewbranch的提示相同。如果是这种情况,git将(默认情况下)执行所谓的快进合并; master的分支指针刚刚更新为与合并提示相同的提交。这通常会导致更简单的提交历史记录更容易使用,尤其是在远程存储库中也进行工作时。
如果你想强制合并在git中记录为合并,你可以在git merge上使用--no-ff选项。
在git中,通常认为在可能的情况下避免合并是一种好习惯。