获取现有的git分支来跟踪远程分支
使用git时,我通常的工作stream程是这样的:
- 创build一个本地存储库
- 在存储库中做一些工作,添加/更改文件等
- 决定我想要一个中央远程位置的存储库,并创build一个
- 将所有提交从我的本地存储库推送到这个新的远程存储库
但是,现在我希望能够从这个远程存储库中进行push
和pull
,而不必指定我要推送到哪个位置或从哪个位置拉出; 我希望我的本地主人跟踪远程主人。
做这件事的正确方法对我来说是不清楚的,尽pipe它不应该只是一个命令,但我还是无法从文档中确定它。
因为这是每个存储库只做过一次的事情,所以我通常采用了两个简单但却很冒险的解决scheme之一:
- 使用
git clone
来创build一个新的本地存储库,并删除旧的。 git克隆后,新的存储库被设置为追踪来源。 - 手动编辑.git / config来创build主音轨。
我想我应该能够运行一个命令,可能是某种forms的git remote
来设置一个现有的存储库,让主人跟踪远程主人。 谁能告诉我这个命令是什么?
使用set-upstream arg:
git branch --set-upstream local-branch-name origin/remote-branch-name
运行上面的命令可以正确更新.git / config文件,甚至可以用这个输出validation:
“分支本地分支名称设置为从原点跟踪远程分支远程分支名称”。
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来设置它们。
如果你想创build一个新的本地分支来跟踪远程分支,你也可以使用它:
git checkout --track -b [branch_name] --track origin[or other remote name]/[remote_branch_name]
甚至更好:
git checkout -t origin/branch_name
在新版本的git上你可以使用
git branch --track origin/branch_name
The --set-upstream flag is deprecated and will be removed.
git branch master --set-upstream-to myupstream/master