只是一个澄清(在 ubuntu 12.04 上使用 git 版本 1.7.9.5):
Git 将添加/删除遥控器。这些是附加了服务器的 git 远程实例。
git remote add myremote git://remoteurl
然后,您可以像这样获取所述 git 存储库:
git fetch myremote
似乎这会创建一个名为“myremote”的分支,但是不会自动设置该分支的远程。为此,您必须执行以下操作:
首先,验证你有这个问题,即
git config -l | grep myremote
您应该会看到如下内容:
remote.myremote.url=git://remoteurl
remote.myremote.fetch=+refs/heads/*:refs/remotes/myremote/*
branch.myremote.remote=.
branch.myremote.merge=refs/heads/master
如果您看到branch.myremote.remote=.
,那么您应该继续:
git config branch.myremote.remote myremote
git checkout myremote
git pull
您现在应该与远程存储库保持同步,并且您的拉/推应该绑定到适当的远程。您可以按这种方式切换遥控器,每个分支。[注][1]
根据The Official Git Config Documentation,您可以设置默认推送分支(只需在该页面上搜索 remote.pushdefault ),但请记住,这不会影响已经存在的存储库/分支,因此这将起作用但仅对于新的存储库/分支。您应该记住,这--global
将设置用户特定的存储库默认值 (~/.gitconfig),--system
将设置系统范围的存储库默认值 (/etc/gitconfig),并且没有标志将为当前存储库设置配置选项 (./.gitconfig)。
还应该注意的是push.default配置选项用于配置ref-spec行为,而不是 远程行为。
[1]:git branch --set-upstream myotherremote
通常在这里可以工作,但是 git 会抱怨如果使用它不会将分支设置为自己的远程git branch --set-upstream myremote
。然而,我相信这是不正确的行为。