iT邦幫忙

0

[Git] 如何針對指定的commit revert?

  • 分享至 

  • xImage

開發情境假設:
commit0 -> commit1 -> commit2 ... -> commit10

在開發流程上若想要將 commit2 的內容做 revert 並且不異動其它commit的內容, 不知是否可以這樣操作使用?

目前只知要若要 revert 最後一次的 commit10 是沒有問題的, 但若要 revert 之前的commit不知道該如何操作呢?

看更多先前的討論...收起先前的討論...
powerc iT邦研究生 5 級 ‧ 2023-12-12 10:53:22 檢舉
git revert <commit id>
leo226 iT邦新手 4 級 ‧ 2023-12-12 11:07:56 檢舉
這樣的做法測試後似乎會把commit2之後的內容(ex: commit3, commit4...)也都一並revert掉, 無法單純revert commit2內容而己...
powerc iT邦研究生 5 級 ‧ 2023-12-12 11:13:49 檢舉
這樣做會產生一個新的commit,其中的變更就只是還原該次commit的內容而已
leo226 iT邦新手 4 級 ‧ 2023-12-12 11:43:34 檢舉
應該說如果commit3~commit10都沒有變動到跟commit2一樣的檔案或內容的狀況下, 您的做法才可以直接單純的revert commit2的內容.
若commit3~commit10有更動到跟commit2一樣的檔案或內容時, 在commit3~commit10跟commit2一樣的檔案或內容也會被一起revert到commit2的狀況, 或者需手動解衝突, 手動編輯code才行, 無法無痛的直接revert commit2的內容。
以上是測試後的結果,只是想知道能不能無痛的直接revert commit2的內容,不用再處理commit3~commit10的內容, commit的內容如果太大, 處理起來也不好處理.
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2023-12-12 12:03:43
最佳解答

先另開分支
然後還原到 commit1
然後再 pick commit3~10

看更多先前的回應...收起先前的回應...
janlin002 iT邦好手 1 級 ‧ 2023-12-12 14:43:12 檢舉

直接從 commit1 拉分支,然後再 pick commit3~10,這樣可以嗎?

leo226 iT邦新手 4 級 ‧ 2023-12-12 15:12:26 檢舉

嗯,這樣是一個解法^^

leo226 iT邦新手 4 級 ‧ 2023-12-12 15:13:38 檢舉

不過如果commit是己經開發到了3~100,這樣也是不好處理~

一般如果100了才要去拿掉前100個。
本身就是一個問題了。

另開 commit 修改才對啦!

我要發表回答

立即登入回答