我有一个使用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
未设置,所以它是否跟踪没有名称的匿名远程,只是跟踪网址?
答案 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 fetch
和git 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