如何强制推送到Git中的另一个分支

Ian*_* Te 10 git

通过以下方式执行强制推送:

git push origin +branch
Run Code Online (Sandbox Code Playgroud)

通过以下方式完成对不同命名的远程分支的推送:

git push origin local:remote
Run Code Online (Sandbox Code Playgroud)

如何强行推送到不同名称的远程分支?

我试过了:

git push origin local:+remote
Run Code Online (Sandbox Code Playgroud)

但它创建了一个名为的新分支 +remote

Jef*_*ett 9

尝试 git push origin local:remote --force


tor*_*rek 7

只是比接受的答案更完整:refspec的语法是,最多包含和之一(因此,空字符串及其本身都是无效的)。[+][src][:dst]src:dst+

因此--force,您的情况的非语法为+local:remote,而不是local:+remote

使用--force具有在+每个refspec前面添加的效果,即,这两个等效:

git push --force origin someBranch local:remote anotherBranch
git push origin +someBranch +local:remote +anotherBranch
Run Code Online (Sandbox Code Playgroud)

  • @JeffPuckettII:只是refspecs没有`:dst`部分。(您可以使用`+:dst`,但是没有强制动作来删除refspec。)`push`的`:dst`-少refspec告诉`push`来弄清楚(对此有很长很复杂的规则,由于必须与所有历史错误保持兼容:-))。 (2认同)