# 合併後 revert ## Revert 後,想重新合併已合併過的檔案 在 Git 中,系統會檢查是否有合併記錄,而不是僅僅比較檔案內容。 如果在 revert 前已經合併過某個分支,Git 會認為==這些變更已經合併過==(好聰明😢),因此在你嘗試重新合併時,系統會顯示沒有東西可以比較。 ## 解法 ### 1. [--soft](https://github.com/nss-evening-cohort-13/student-help/issues/76) 使用 git reset --soft main 命令可以將當前分支(在你的情況下是 develop)重置為 main 分支的狀態,同時保留你的變更。這將使 develop 分支的 HEAD 指向 main 分支的最新提交,但保留所有變更在暫存區中。 執行前需要確認你的 HEAD 在哪裡比較保險。 ### 2. [cherry-pick](https://gitbook.tw/chapters/faq/cherry-pick#google_vignette) git cherry-pick 可以將==指定的提交歷史記錄== 複製到 當前分支並創建新的 commit。 這在你需要重新應用某個已合併但後來被撤銷的提交時特別有用。 例如,如果你遇到 button-5 無法合併到 develop 的情況,可以創建一個新的分支(例如 button-5-fix),並在該分支上使用 git cherry-pick 命令來應用特定的提交。 假設你要 cherry-pick 的提交 hash 值為 happy,你可以這樣操作: ```bash! git checkout -b button-5-fix git cherry-pick happy 這將把 happy 這個 hash 值對應的提交歷史複製到 button-5-fix 分支並創建新的 commit。 ``` 這樣,就可以把新的 button-5-fix 分支合併到 develop 分支,保證原本 button-5 的變更被應用。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up