什么是一体化(或至少更简单)的方法来实现这一目标?基本上我想创建一个分支,但跟踪它,以便我可以将更改作为备份推送到中央存储库.
git branch BranchName
git push origin BranchName
git -d BranchName
git branch --track BranchName origin/BranchName
Run Code Online (Sandbox Code Playgroud)
我已经完成了一堆google和SO搜索,但我对设置远程分支和跟踪它们的正常描述感到困惑.
跟踪分支的正常用途是您可以从中获取.如果你想推送到远程进行备份,你可能想要你所有的分支机构,是吗?所以你可以这样做:
git config remote.backup.mirror true
Run Code Online (Sandbox Code Playgroud)
然后每当你运行时git push backup,它都会默认行为,它会git push --mirror backup推送所有引用(不只是所有分支 - 所有标记,所有其他远程分支,所有内容).
如果你不想走那么远,你仍然可以这样做:
git push --all backup
Run Code Online (Sandbox Code Playgroud)
这将推动所有分支,但不是你的其他参考.
最后,如果你真的只想推动一个分支......好吧,基本上你应该总是这样做:
git push origin backup-branch
Run Code Online (Sandbox Code Playgroud)
你可以缩短它的唯一方法就是让它成为默认操作git push,如果你真的想要的话.git push没有参数的行为有四种选择:
- 什么都不推.
- 匹配推送所有匹配的分支.两端具有相同名称的所有分支都被认为是匹配的.这是默认值.
- 跟踪将当前分支推送到其上游分支.
- current将当前分支推送到同名分支.
您可以设置首选的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
Run Code Online (Sandbox Code Playgroud)