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

如何在Git中强制推送到另一个分支,git,Git,通过以下方式进行强制推送: git推送原点+分支 通过以下方式推送到不同名称的远程分支: git推送源本地:远程 如何强制推送到另一个名称不同的远程分支 我试过: git推送源本地:+remote 但是它创建了一个名为+remote的新分支,+需要出现在表示这对夫妇的参数的开头 git push origin +localBranchName:remoteBranchName 这有时很难记住,所以还有--force标志 git push origin --force localBranc

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

git推送原点+分支
通过以下方式推送到不同名称的远程分支:

git推送源本地:远程
如何强制推送到另一个名称不同的远程分支

我试过:

git推送源本地:+remote

但是它创建了一个名为
+remote

的新分支,
+
需要出现在表示这对夫妇的参数的开头

git push origin +localBranchName:remoteBranchName
这有时很难记住,所以还有
--force
标志

git push origin --force localBranchName:remoteBranchName
但是请注意如果使用该标志推送多个分支,那么它们都将被强制推送

git push origin --force localBranchName:remoteBranchName anotherLocalBranch
在这种情况下,您可能不想强制推送
另一个本地分支
,因此应该使用
+
指定要强制推送的分支

git push origin +localBranchNameForced:remoteBranchName localBranchNotForced:remoteBranchNotForced +anotherLocalBranchForcePushedToUpstreamTracking

一定要阅读更好的解释,看看他的一些关于git的世界级知识。

有些人不是先阅读的。那样做!这个答案是关于
+
强制推进字符的使用,而不是一般的强制推进


只是比公认的答案更完整一点:refspec的语法是
[+][src][:dst]
,最多省略
src
:dst
中的一个(因此空字符串和
+
本身都是无效的)

因此,您的案例的非-
--force
语法是
+local:remote
,而不是
local:+remote

使用
--force
的效果是在每个参考规范前面添加
+
,即这两个是等效的:

git push --force origin someBranch local:remote anotherBranch
git push origin +someBranch +local:remote +anotherBranch

这更符合我的问题。我会接受这个,太好了!在您的示例中,
a
d
代表什么?@JeffPuckettII:只参考没有
:dst
部分的规范。(您可以使用
+:dst
,但删除refspec时没有强制操作。)
:dst
-less-refspec for
push
告诉
push
找出它(由于必须与所有历史错误兼容,因此有很长很复杂的规则:-)。@torek您可以编辑它以使其更清晰吗?也许使用远程和本地而不是一个字母的vars:)@torek,哇,谢谢,我知道
--all
选项,但我不知道你可以一次推送3个单独的分支。