协慌网

登录 贡献 社区

如何将新的本地分支推送到远程 Git 存储库并进行跟踪?

我希望能够做到以下几点:

  1. 基于其他(远程或本地)分支创建本地分支(通过git branchgit checkout -b

  2. 将本地分支推送到远程存储库(发布),但使其可跟踪,以便git pullgit push立即生效。

我怎么做?

我知道--set-upstream在 Git 1.7 中设置--set-upstream ,但这是一个创作后的动作。我想找到一种方法来在将分支推送到远程存储库时进行类似的更改。

答案

在 Git 1.7.0 及更高版本中,您可以签出一个新分支:

git checkout -b <branch>

编辑文件,添加和提交。然后使用-u (-- --set-upstream缩写)选项推送

git push -u origin <branch>

Git 将在推送期间设置跟踪信息。

如果您没有与他人共享您的仓库,这对于将所有分支推送到远程并且--set-upstream跟踪正确地为您来说非常有用:

git push --all -u

(不完全是 OP 的要求,但这个单线很受欢迎)

如果你与其他人分享你的回购,这不是一个很好的形式,因为你会用你所有狡猾的实验分支堵塞回购。

在引入git push -u ,没有git push选项来获得你想要的东西。您必须添加新的配置语句。

如果您使用以下方法创建新分支:

$ git checkout -b branchB
$ git push origin branchB:branchB

您可以使用git config命令避免直接编辑.git/config文件。

$ git config branch.branchB.remote origin
$ git config branch.branchB.merge refs/heads/branchB

或者,您可以手动编辑.git/config文件以获取此分支的跟踪信息。

[branch "branchB"]
    remote = origin
    merge = refs/heads/branchB