如何在git中的交互式rebase期间推送中间提交?

时间:2015-09-28 22:43:56

标签: git

我有一个本地分支设置来跟踪远程源/主设备,它是由

创建的

“git checkout -b mybranch origin / master”

此后,我在同一个本地分支上有两个单独的本地提交,commit2依赖于commit1

现在我想将commit1中的更改​​包括在远程分支中,这样做的正确方法是什么?

我已经运行了“git rebase -i”并将commit1更改为edit,并且在rebase时git stop at commit 1,这就是我想要的。

但如果我尝试做“git push”之类的操作,我会收到错误消息

“致命:你目前不在分支机构。 推动导致当前的历史(分离的HEAD) 现在状态,使用

PS C:\> $list.item | % {
>> $t = $_.tags -split ","
>> if ($t -contains "red") { $_.ne }
>> }
>>

”,

现在假设我的commit1的哈希是“abce”,将此更改推送到远程origin / master的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

git status告诉您如何取消工作副本中的rebase。 (可能是git rebase --abort

然后你可以像这样推送特定的提交:

git push <remotename> <commit SHA>:<remotebranchname>

答案 1 :(得分:0)

尽管拉霍斯的答案是正确的,但您可以做得更加轻松-错误消息可以为您提供所有的方法:)

pick xxxxxx 
exec git push origin HEAD:master
pick xxxxxy
exec git push origin HEAD:master
pick xxxxxz

这样,您将始终推动HEAD,因此不必复制/粘贴SHA arround。