我在我的分支中添加了 3 個提交:
- '3' ->
c3425f(added: <h3>1</h3>) - '2' ->
c34252(added: <h2>2</h2>) - “第一次提交”->
c3425d(added: <h1>1</h1>)
最后我得到了這個結構:
<h1>1</h1>
<h2>2</h2>
<h3>3</h3>
現在我想排除c34252提交。為此,我使用了git revert c34252.
這樣做我的IDE向我展示了這個:
<h1>1</h1>
<<<<<<< HEAD
<h2>2</h2>
<h3>3</h3>
=======
>>>>>>>
所以,它建議我第二次提交包含<h2>2</h2><h3>3</h3>,但應該只包含<h2>2</h2>. 那么,為什么 git 建議我第二次提交包含兩個更改?應該使用什么 git 命令來排除第二次提交?
uj5u.com熱心網友回復:
TLDR
對此沒有神奇的命令。你需要git準確地解釋你想要什么。
更深入
當您查看提交“2”時:
git show c34252
你會看到提交包含一個像這樣的差異:
diff --git a/file b/file
index ace652e..6d8ba51 100644
--- a/file
b/file
@@ -1 1,2 @@
<h1>1<h1>
<h2>2<h2>
所以當你跑
git revert c34252
git試圖應用這個的逆。它試圖找到
<h1>1<h1>
<h2>2<h2>
(end of file)
然后洗掉 h2 線。然而,它發現
<h1>1<h1>
<h2>2<h2>
<h3>3<h3>
(end of file)
所以不確定你想獲得什么:只洗掉 h2 行,或者從 h2 直到(檔案結束)。你需要解釋 git 你想要什么,這個 AFAIK 沒有辦法解決。當您編輯同一行或緊隨其后的行時,經常會出現這種沖突。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/360190.html
標籤:混帐
上一篇:拒絕合并不相關的歷史
下一篇:子字串到Java中的陣列
