gpt4 book ai didi

git - 创建远程主机的分支

转载 作者:太空狗 更新时间:2023-10-29 13:38:06 25 4
gpt4 key购买 nike

我无法理解 Git 中以下命令背后的逻辑:

git checkout -b hotfix_example_1 origin/master

如果我输入它,则会创建一个名为 hotfix 的本地分支,该分支是 master 分支的分支我的名为 origin 的远程存储库。当我稍后将它推送到我的远程存储库时,图形如下所示:

enter image description here

假设一位同事进行了更改并将其推送到远程主控 分支,稍后我决定在远程主控之外创建另一个名为 < strong>hotfix_example_2。当我将新的 hotfix_example_2 分支推送到远程存储库时,我注意到我创建的新分支不是 remote master 的最新提交的分支(我的同事之前推送的那个)而是从之前的提交中分支出来的。如果我做一个

git pull origin master

在我本地的 master 分支上重复这个过程,我可以看到 hotfix_example_2 是从我同事的提交中分支出来的。我不明白的是,即使我在 checkout -b 命令中使用了 origin/master,为什么我还必须执行 git pull 才能获得我想要的图表。如果它没有多大意义,我真的很抱歉,但英语不是我的母语。

最佳答案

几乎只有 pullfetch 检索新提交并更新远程引用。其他操作仅适用于您的本地副本。当您创建一个分支时,它是根据指定的 ref 创建的,但该 ref 仅在本地存储库中查找。您可以在 .git/refs/remotes/origin 下查看每个远程分支当前的引用。

我认为此设计背后的目标是允许完全断开连接的操作。如果 checkout -b 尝试将新分支基于远程存储库中的远程引用,则必须联系远程存储库。通过将 ref 存储在本地,即使完全断开连接也仍然可以创建分支。

关于git - 创建远程主机的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26425248/

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