我們有一個主分支,一個暫存分支不在主分支中,我的功能分支不在分期中。這裏有一個圖:如何刪除特定的提交?
my_feature: o--o--o---o--o <= after rebase, contains commits
/ / from other_feature
other_feature: o--o /
/ \ /
staging: o--o---o--o
/
master: o--o--o--o-o--o--o--o--o <= master
我重建基礎my_feature
分支後other_feature
被合併staging
與融入staging
的意向,但後來意識到my_feature
應該直接合併爲master
。
現在的問題是,我有other_feature
承諾在這個時候在master
沒有業務。
當我嘗試git revert --no-commit 65b2e1b
時,它返回未合併文件列表和fatal: Your index file is unmerged
。我不知道這是什麼意思。
git status
返回上述未合併文件。所以我跑git commit -am "revert"
,它返回一條消息You are currently reverting commit 5a53cd0. nothing to commit, working directory clean
。如果我然後嘗試git push
它只是說everything is up to date
有什麼建議嗎?
這些「未合併」消息表示您處於合併過程中。你看到的狀態表明你已經開始了這個恢復,並且仍然處於中間。如果你想恢復提交,你必須手動完成合並過程,'git commit'返回。在此之前,'git push'不會很有用,因爲Git只會推送*提交*,並且正在進行的還原 - 那個具有合併衝突並不是一個新的提交。 – torek
根據您的問題更新,聽起來您不應該還原,而是完全撤銷您的原始底牌,並重新啓動具有所需目標的底牌過程。如果這是正確的,而不是完成你目前的回覆,只需'git revert --abort'來終止它,回到你的基準狀態;然後撤消你的rebase,使用你的功能分支的reflog。 – torek
感謝您的幫助!如果幾天前發生重組,那麼從那以後有很多工作要做? 現在有人能幫助我理解爲什麼人們會低估這樣的問題嗎?這是不合理的嗎? –