使用git时我常用的工作流程是这样的:
但是,现在,我希望能够从此远程存储库中push
和pull
,而无需指定我要推送或从中拉出的位置;我希望我的本地主人跟踪远程主人。
正确这样做的方式对我来说并不清楚,我无法从文档中确定它,即使它不应该只是一个命令。< / p>
因为它是每个存储库只执行过一次的事情,所以我通常使用两个简单但有问题的解决方案之一:
git clone
创建一个新的本地存储库,并删除旧的存储库。在git克隆之后,新的存储库被设置为跟踪原点。我想我应该能够运行一个命令,可能是某种形式的git remote
来设置一个现有的存储库,让主控跟踪一个远程主控。谁能告诉我这个命令是什么?
答案 0 :(得分:149)
使用set-upstream arg:
git branch --set-upstream local-branch-name origin/remote-branch-name
运行上述命令可以正确更新.git / config文件,甚至可以使用此输出进行验证:
“分支local-branch-name设置为从源跟踪远程分支remote-branch-name。”
编辑:正如martijn所述:“在Git v1.8.0版本中,不推荐使用-set-upstream。请改用--set-upstream-to。”
git branch --set-upstream-to local-branch-name origin/remote-branch-name
有关详细信息,请参阅this。
答案 1 :(得分:19)
git help remote
应该向您展示您需要了解的内容。我想你想要的是
git remote add [remote-name] [remote-url]
# Set a local branch to follow the remote
git config branch.[branch-name].remote [remote-name]
# Set it to automatically merge with a specific remote branch when you pull
git config branch.[branch-name].merge [remote-master]
您也可以手动编辑.git / config来设置它们。
答案 2 :(得分:6)
如果要创建新的本地分支以跟踪远程分支,也可以使用此选项:
git checkout --track -b [branch_name] --track origin[or other remote name]/[remote_branch_name]
甚至更好:
git checkout -t origin/branch_name
答案 3 :(得分:5)
在较新版本的git上,您可以使用
git branch --track origin/branch_name
答案 4 :(得分:1)
The --set-upstream flag is deprecated and will be removed.
git branch master --set-upstream-to myupstream/master
答案 5 :(得分:0)
快进了三年(请参阅我在那做的事情:-)),我尝试使用Git Bash拉出一个未跟踪的分支并收到
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> develop
以下实现了我所需要的:
$ git branch --set-upstream-to=origin/develop develop
Branch 'develop' set up to track remote branch 'develop' from 'origin'.
答案 6 :(得分:-1)
使用此命令:
git clone [<options>] [--] <repo> [<dir>]