了解git push命令

时间:2014-09-18 13:07:13

标签: git github

我正在尝试理解一个git命令。

在我的本地存储库中,我目前正在使用master

我在一个名为origin的遥控器上,其中有两个分支:masterreview。 但是,我有另一个名为review ...

的遥控器

我的问题是:当我运行以下命令时会发生什么?

git push review

是否将更改推送到同一个遥控器上的review分支? 或者它是否将更改推送到名为review的另一个遥控器?

2 个答案:

答案 0 :(得分:4)

我理解这可能会让人感到困惑。您最好为分支和遥控器选择不同的名称。

运行git push review时,您基本上使用以下语法

git push <repository> [<refspec>...]

但是您要退出可选的<refspec>...参数。因此,git pushreview理解为远程,而不是分支。因此,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然后是分支。但是,如果您未指定分支名称,则他将使用与您实际签出的分支相同的名称。