Git Remote Branch跟踪

时间:2010-08-25 12:14:43

标签: git

什么是一体化(或至少更简单)的方法来实现这一目标?基本上我想创建一个分支但是跟踪它以便我可以将更改作为备份推送到中央存储库。

git branch BranchName
git push origin BranchName
git -d BranchName 
git branch --track BranchName origin/BranchName

我做了一堆google& SO搜索,但我对设置远程分支和跟踪它们的正常描述感到困惑。

2 个答案:

答案 0 :(得分:7)

跟踪分支的正常用途是您可以从中获取。如果你想推送到远程进行备份,你可能想要你所有的分支机构,是吗?所以你可以这样做:

git config remote.backup.mirror true

然后,无论何时运行git push backup,它都会默认为git push --mirror backup的行为,它会推送所有引用(不只是所有分支 - 所有标记,所有其他标记远程分支,一切)。

如果你不想走那么远,你仍然可以这样做:

git push --all backup

这会推动所有分支机构,但不会推动其余的分支机构。

最后,如果你真的只想推动一个分支......好吧,基本上你应该总是这样做:

git push origin backup-branch

如果你真的想要的话,你可以缩短它的唯一方法就是让它成为git push执行的默认操作。 git push没有参数的行为有四种选择:

  
      
  • 没有不要推送任何东西。
  •   
  • 匹配推送所有匹配的分支。两端具有相同名称的所有分支都被认为是匹配的。这是默认设置。
  •   
  • 跟踪将当前分支推送到其上游分支。
  •   
  • 当前将当前分支推送到同名分支。
  •   

您可以使用git config push.default <value>设置首选的一个。如果将其更改为tracking,则将备份分支配置为跟踪分支将允许您在没有参数的情况下将其推送,但如果已经检出,则仅 。它会阻止你使用git push一次推送多个分支(默认行为,这真的很不错)。所以,如果你真的想这样做,你确实需要将你的分支设置为跟踪分支。你可以缩短你的方式:

git branch backup-branch
git push origin backup-branch
# most elegant way:
git branch --set-upstream backup-branch origin/backup-branch
# or this:
# git branch -f backup-branch origin/backup-branch
# or this:
# git config branch.backup-branch.remote origin
# git config branch.backup-branch.merge refs/heads/backup-branch

答案 1 :(得分:1)

我使用这个网站http://git-wt-commit.rubyforge.org/git-publish-branch供我自己使用(在堆栈上进行大量搜索后)。

这个过程归结为:

git branch *branchname*
git push origin *branchname*
git config branch.*branchname*.remote origin
git config branch.*branchname*.merge *branchname*

我的情况非常基本,但是如果你仔细研究链接中的代码,我相信它会对更复杂的情况有所帮助。