我可以在一个命令中销毁并重新创建Git远程分支吗?

时间:2012-06-01 14:01:09

标签: git

在Git中,我有时会在长期运营的分支机构工作。当我准备好时,我喜欢不断地让主人变得更容易合并。

在变基础之后,我无法将先前推送的分支推送到远程分支,因为我的分支历史不再同意远程分支的历史记录。所以我必须先删除它。

这是我目前的工作流程:

git checkout my_branch
git rebase master
git push origin :my_branch  # Delete remote version of the branch
git push origin my_branch   # Push up my new version of history on this branch

是否有一个原子命令可以替换最后两个命令?

2 个答案:

答案 0 :(得分:11)

如果允许您重写远程分支,则可以使用git push --force my_remote my_branch

答案 1 :(得分:0)

是的,在示例中,git push -f是合适的。

之所以不需要重新创建整个分支,是因为所有重新设置基准前的提交都保持不变。

我们只需要将新的基于重新定位的本地提交覆盖到包含非基于重新连接的陈旧提交的远程仓库中即可。


在类似的用例中,git push -f不可行,因为我的远程回购被误删除了,所以我created a git-create shell script in my PATH让我轻松了:

git create my_branch
git push -f