首页 > 解决方案 > 如果我在分支“Foo2”并执行“git push origin Foo”,会发生什么?

问题描述

我有一个分支——我们称之为“Foo”——然后我从 Foo 分支创建了 Foo2,Foo 现在是一个遗留分支——我目前的工作重点是 Foo2。

现在我担心我可能会忘记我正在研究 Foo2,所以我可能会这样做git push origin Foo(尤其可能是由于 bash 的制表符完成行为)。我担心这可能会以某种方式推动从 Foo2 到 Foo 的更改。

那么,实际上会发生什么?

标签: git

解决方案


让我们检查一下文档git push。命令的一般形式是git push <repository> <src>:<dst>,我们想弄清楚:<dst>省略时会发生什么。

如果git push [<repository>]没有设置任何<refspec>参数以<src>使用remote.<repository>.push配置变量更新目的地的某些 ref,:<dst>则可以省略部分 - 这样的推送将更新通常在命令行上<src>没有任何更新的 ref。<refspec>否则,缺少:<dst>意味着更新与<src>.

(我保证,我没有从git 手册页生成器中复制它。)

因此,无论它做什么都将涉及<src>您提供的确切内容,这意味着只要您不在本地Foo分支中创建更多提交,运行git push origin Foo将找不到任何要推送的内容,并且远程Foo分支将保持不变。


推荐阅读