获取现有的git分支来跟踪远程分支

使用git时,我通常的工作stream程是这样的:

  1. 创build一个本地存储库
  2. 在存储库中做一些工作,添加/更改文件等
  3. 决定我想要一个中央远程位置的存储库,并创build一个
  4. 将所有提交从我的本地存储库推送到这个新的远程存储库

但是,现在我希望能够从这个远程存储库中进行pushpull ,而不必指定我要推送到哪个位置或从哪个位置拉出; 我希望我的本地主人跟踪远程主人。

做这件事的正确方法对我来说是不清楚的,尽pipe它不应该只是一个命令,但我还是无法从文档中确定它。

因为这是每个存储库只做过一次的事情,所以我通常采用了两个简单但却很冒险的解决scheme之一:

  1. 使用git clone来创build一个新的本地存储库,并删除旧的。 git克隆后,新的存储库被设置为追踪来源。
  2. 手动编辑.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