我正在尝试理解一个git命令。
在我的本地存储库中,我目前正在使用master
。
我在一个名为origin
的遥控器上,其中有两个分支:master
和review
。
但是,我有另一个名为review
...
我的问题是:当我运行以下命令时会发生什么?
git push review
是否将更改推送到同一个遥控器上的review
分支?
或者它是否将更改推送到名为review
的另一个遥控器?
答案 0 :(得分:4)
我理解这可能会让人感到困惑。您最好为分支和遥控器选择不同的名称。
运行git push review
时,您基本上使用以下语法
git push <repository> [<refspec>...]
但是您要退出可选的<refspec>...
参数。因此,git push
将review
理解为远程,而不是分支。因此,git push review
会将更改(如果不是所有内容都是最新的)推送到名为review
的远程。
这些变化将如何推动?以下是git-push
手册页的相关段落:
When the command line does not specify what to push with
<refspec>... arguments or --all, --mirror, --tags options, the
command finds the default <refspec> by consulting remote.*.push
configuration, and if it is not found, honors push.default
configuration to decide what to push (See gitlink:git-config[1] for
the meaning of push.default).
因此,运行git push review
时会发生什么取决于您的Git配置。运行
git config remote.review.push
如果找到匹配项,那么相应的值将决定运行git push review
时会发生什么。如果找不到匹配项,Git会使用push.default
的值来确定要执行的操作;跑
git config push.default
查看当前所处的模式push.default
。有关push.default
执行操作的详细信息,请参阅Default behavior of "git push" without a branch specified
答案 1 :(得分:0)
您可以查看文档。
http://git-scm.com/docs/git-push
[<repository> [<refspec>...]]
首先repository
然后是分支。但是,如果您未指定分支名称,则他将使用与您实际签出的分支相同的名称。