在git push -u my_url master中会发生什么

时间:2017-04-25 09:15:20

标签: git

我有一个使用git init和一些提交创建的存储库。

忘记了第一次做git remote add origin my_git_url的正确顺序,我刚做git push -u my_git_url master

推送成功,显示Branch master set up to track remote branch master from my_git_url.

那么我目前的回购状态是什么?我知道origin未设置,所以它是否跟踪没有名称的匿名远程,只是跟踪网址?

2 个答案:

答案 0 :(得分:2)

作为Piotr Skotnicki said in a comment,您只需检查您的.git/config文件即可查看。然而,在Git说:

之后
Branch master set up to track remote branch master from <url>

您将看到的是:

[branch "master"]
        remote = <url>
        merge = refs/heads/master

换句话说,不是通过名为的遥控器来记住其他Git的分支(它可以为您提供所有其他好处,例如远程跟踪分支,而不必输入长URL),您的Git现在通过匿名远程记住上游。 git fetchgit pull(无论如何都只运行git fetch)都会联系到网址上的任何Git答案,就像您使用指定的遥控器并使其跟随遥控器一样#39;的URL设置。 git pull运行的第二个命令将使用FETCH_HEAD中留下的跟踪(事实上,git pull强制执行此操作,无论您是否切换到使用命名的远程)。

只需设置一个命名的遥控器,运行git fetch以填充远程跟踪分支,然后再次git push -u或使用git branch --set-upstream-to(如Jai Kumar Rajput's answer中所示),修复branch.master.remote设置,以获得远程跟踪分支的好处。

答案 1 :(得分:0)

使用-u选项推送的副作用,如此处提及

 git push -u origin master

等效的长选项为--set-upstream

git branch --set-upstream已被弃用,可能会在相对较远的将来被删除。

git branch [-u|--set-upstream-to]已经引入了更健全的参数。

如果要使现有分支跟踪成为远程分支,

git branch -u upstream/foo