gpt4 book ai didi

git - 我在看 GIT 客户中的 GIT 分支错了吗?

转载 作者:太空狗 更新时间:2023-10-29 14:31:44 26 4
gpt4 key购买 nike

当我使用 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 分支路径。

enter image description here

但是,当我在任何给定时间只在一个分支工作时(除了始终存在的 develop 和 master 分支之外)——这不是发生的事情。如果我开始在一个新分支上工作,完成分支并将其 merge 回开发中,这一切似乎都发生在同一条“路径”上。然而,当我同时在两个分支上工作时,似乎其中一个分支在它自己的路径上爆发了。然而,第一个分支只是可视化为开发分支的延续。

enter image description here

我觉得很困惑,只有一个分支用它自己的路径在视觉上表示,而另一个只是表示为 develop 分支的直接延续。我是不是弄错了 - 或者对分支的思考是错误的?我只是想清楚和一致地了解我何时从开发中分离出一个新分支,以及何时将它再次 merge 回去。在我看来,为每个创建的分支创建一个单独的路径会使这更容易实现。

enter image description here

是否有 GIT 客户端可以执行此操作?或者我需要以不同的方式看待这个问题吗?

最佳答案

你的“问题”是,你不知道快进 merge 。如果没有要 merge 的东西,这意味着您在分支和 merge 之间没有更改任何开发,默认情况下您会进行快进 merge ,这只会使 develop 指向与 feature/1 相同的提交。如果你想保留不同路径的历史记录,你可以使用 merge--no-ff 选项,即使没有任何东西可以创建 merge 提交实际上 merge 。然后任何 Git 客户端都会向您显示您期望的图像。如果您不这样做,则没有 Git 客户端可以向您显示它,因为历史不是这样的。

关于git - 我在看 GIT 客户中的 GIT 分支错了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41466273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com