'Git push -u'记住参数的时间有多长?

时间:2013-06-19 12:16:30

标签: git version-control github

我刚刚开始使用Git教程。

在那里,他们提到了一个命令

  

git push -u origin master

将对本地分支master所做的更改推送到origin存储库(在Github上)。 并且-u告诉git记住参数,以便下次我们可以写git push

有人可以告诉我git是否仅在我们下一次使用git push时记住参数,或者每次都要记住告诉git忘记参数的命令?还有,有没有这样的命令?

提前致谢!

2 个答案:

答案 0 :(得分:7)

在命令

git push -u origin master

-u标志表示您的本地分支将成为跟踪分支。也就是说,跟踪远程分支的分支,以便将来git pull知道要合并哪个分支,git push将被定向到正确的远程分支。

从技术上讲,跟踪会将有关主分支的以下信息添加到.git/config文件中:

[branch "master"]
    remote = origin
    merge = refs/heads/master

并在此处创建一个文件.git/refs/remotes/origin/master,代表远程分支。

这些设置是当前存储库的本地设置,因此它们不会应用于其他存储库。

.git/config中的更改是永久性的(直到您明确更改它们为止),因此git push -u的效果是永久性的。

答案 1 :(得分:2)

git push -u告诉git在本地跟踪远程分支('上游跟踪引用'),因此在本地分支上git push将始终推送到初始{{1}中指定的远程分支。 1}}。这将保留在分支(或您的情况下为master)上,直到您执行下一个git push -u(这将导致它跟踪另一个远程分支)。

它也被使用,以便其他git命令知道从哪里检索数据。 push -u使用它将对被跟踪的远程数据所做的更改提取到本地存储库。