当我使用 GIT 分支时,我对任何给定分支的“心理模型”是,它是一条从我基于该分支的分支中分离出来的路径。假设我执行以下操作:
git checkout develop
git checkout -b feature/1
touch README.md
git add --all
git commit -m "Added README.md"
git push -u origin feature/1
git checkout develop
git merge feature/1
git push
现在,我希望 git GUI 通过将
develop
分支绘制为单独的路径来将其可视化。然后,从 develop
分支路径,我希望看到 feature/1
分支路径从 develop
分支路径中分离出来。然后我希望看到两条路径并排,直到我将 feature/1
merge 到 develop 中。此时,我希望看到 feature/1
分支路径 merge 回 develop
分支路径。但是,当我在任何给定时间只在一个分支上工作时(除了始终存在的 develop 和 master 分支之外)- 这不会发生。如果我开始在一个新分支上工作,完成该分支并将其 merge 回开发,这一切似乎都发生在同一个“路径”上。但是,当我同时在两个分支上工作时,似乎其中一个分支在自己的路径上突破了。然而,第一个分支只是被可视化为开发分支的延续。
我发现只有一个分支用它自己的路径在视觉上表示,而另一个只表示为开发分支的直接延续,这让我感到困惑。我是不是弄错了 - 还是想错了分支?我只想清楚且一致地了解我何时从开发中断开新分支以及何时将其重新 merge 。在我看来,为每个创建的分支设置一个单独的路径会更容易获得。
是否有一个 GIT 客户端可以做到这一点?还是我需要以不同的方式看待这个问题?
最佳答案
您的“问题”是,您不知道快进 merge 。如果没有要 merge 的内容,这意味着您在分支点和 merge 回来之间没有更改开发中的任何内容,默认情况下您会进行快进 merge ,这只会使 develop
指向与 feature/1
相同的提交。如果您想保留不同路径的历史记录,您可以使用 --no-ff
的 merge
选项,即使实际上没有要 merge 的内容,它也会创建 merge 提交。然后任何 Git 客户端都会向您显示您期望的图像。如果您不这样做,则任何 Git 客户端都无法向您展示,因为历史记录并非如此。
关于git - 我看错了 GIT 客户端中的 GIT 分支吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41466273/