亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

撤消尚未被推送的Git合并

撤消尚未被推送的Git合并

Git
森林海 2019-06-12 15:32:27
撤消尚未被推送的Git合并在我的支部里,我做了一個git merge some-other-branch本地,但從未將更改推送到原主。我不是有意合并,所以我想撤銷它。當做一個git status在我合并后,我收到了這樣的信息:# On branch master # Your branch is ahead of 'origin/master' by 4 commits.基于我找到的指示我試著跑git revert HEAD -m 1但現在我收到了這條信息git status:# On branch master # Your branch is ahead of 'origin/master' by 5 commits.我不希望我的分支在任何數量的提交中領先。我該怎么回到那個地步?
查看完整描述

3 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

帶著git reflog檢查哪個提交在合并之前(git reflog將是一個比git log)。然后您可以使用以下方法重置它:

git reset --hard commit_sha

還有另一種方法:

git reset --hard HEAD~1

它會讓你重獲一次承諾。

請注意,任何修改和未提交/未保存的文件都將重置為未修改的狀態。..把它們藏起來或者藏起來--merge選項如下。


@Velmont在以下答復中指出,在這個直接案例中,使用:

git reset --hard ORIG_HEAD

可能會產生更好的結果,因為它會保留您的更改。ORIG_HEAD會在合并發生之前直接指向提交,所以您不必自己尋找它。


進一步的技巧是使用--merge開關而不是--hard因為它沒有不必要地重置文件:

git reset --merge ORIG_HEAD

-合并

重置索引并更新工作樹中與<COMMIT>和HEAD不同的文件,但保留索引和工作樹(即未添加的更改)之間不同的文件。


查看完整回答
反對 回復 2019-06-12
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

假設你的本地師父沒有領先于本源/師父,你應該能夠做到。

git reset --hard origin/master

然后你的本地人master分支應與origin/master.


查看完整回答
反對 回復 2019-06-12
?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

看見Git書第四章萊納斯·托瓦爾茲的原著.

若要撤消合并,請執行以下操作已經被推了:

git revert -m 1 commit_hash

如果您再次提交分支,請確保還原,就像Linus所說的。


查看完整回答
反對 回復 2019-06-12
  • 3 回答
  • 0 關注
  • 1399 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號