我希望能够做到以下几点:
基于其他(远程或本地)分支创建本地分支(通过git branch
或git checkout -b
)
将本地分支推送到远程存储库(发布),但使其可跟踪,以便git pull
和git 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