我有一个分支-我们称它为“ Foo”-然后我从Foo分支创建了Foo2,Foo现在是一个传统分支-我目前的工作集中在Foo2。
现在,我担心我可能会忘记正在开发Foo2,所以我可能会做git push origin Foo
(特别是由于bash的制表符完成行为)。我担心这可能会以某种方式将更改从Foo2推到Foo。
那么,实际上会发生什么?
答案 0 :(得分:2)
让我们检查the documentation for git push
。该命令的一般形式为git push <repository> <src>:<dst>
,我们想弄清楚省略:<dst>
时会发生什么。
如果将没有任何
git push [<repository>]
参数的<refspec>
设置为使用<src>
配置变量通过remote.<repository>.push
更新目标处的某些引用,则可以省略:<dst>
部分-这样的推送将更新通常在命令行上没有任何<src>
的引用<refspec>
的引用。否则,缺少:<dst>
意味着要更新与<src>
相同的引用。
(我保证,我没有从git man page generator复制它。)
因此,无论做什么,都会涉及到您提供的确切<src>
,这意味着只要您不在运行Foo
的本地git push origin Foo
分支中创建更多提交,将找不到要推送的任何内容,并且远程Foo
分支将保持不变。