簡體   English   中英

如何在git中進行交互式rebase期間推送中間提交?

[英]How to push an intermediate commit during interactive rebase in git?

我設置了一個本地分支來跟蹤遠程原點/主節點,它是由

“ git checkout -b mybranch來源/主服務器”

現在,在同一本地分支上有兩個單獨的本地提交,而commit2取決於commit1

現在,我想將commit1中包含的更改推送到遠程分支,這樣做的正確方法是什么?

我已經運行了“ git rebase -i”並更改了commit1以進行編輯,而git變基時git在提交1處停止了,這就是我想要的。

但是,如果我嘗試執行“ git push”之類的操作,則會收到錯誤消息:

“致命:您當前不在分支上。要立即將歷史記錄推送到當前(分離的HEAD)狀態,請使用

git push origin HEAD:<name-of-remote-branch>

現在假設我的commit1的哈希是“ abce”,那么將這種更改推送到遠程源/主服務器的正確方法是什么?

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

然后您可以像這樣推送特定的提交:

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

盡管Lajos的答案是正確的,但您可以做得更輕松-錯誤消息可以給您一切

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

這樣,您將始終推動HEAD,因此不必復制/粘貼SHA arround。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM