Git cherry pick 實戰: 作業分支混到 master commit,但又不想洗掉自己作業的 commit 要怎麼辦?


Posted by MoreCoke on 2020-08-13

前言

我在提交 wee7 作業時,發現自己過去不小心在分支上混到 master 的 commit,原本想說要按照 MTR04 的教學影片暴力解移檔案,但後來發現這樣做會洗掉自己過去的 commit,因為自己的 commit 有些訂正紀錄想留下來日後忘了能回去看,所以就去找 git 有沒有什麼方法能解,就找到 cherry pick 了。

pr 混到 master commit 的網址

首先

我先切回 master 分支,更新到最新進度。

git pull https://github.com/Lidemy/mentor-program-4th.git master
git push origin master

刪除剛推的遠端分支。

git push origin :week7

接著

開個新分支叫 week7-v2。

git checkout -b week7-v2

用 sha 值挑出你要的櫻桃(commit)。

git cherry-pick 96742ce b30854f 226d433 4367007 d36c054 b32de27 134e3a0 f090cc5

關於 sha 值的查找可以用 git reflog 去查。

最後

把 week7-v2 推上遠端!

git push origin week-v2

稍等片刻

成功啦~

建立 week7-v2 的 PR,再次檢查就會只剩下自己的 commit 喽!

成功網址

最後確認無誤後就能把本地的 week7 分支刪掉了,因為該分支的 commit 還沒 push 到遠端,所以要強制刪除。

git branch -D week7

參考資料

【狀況題】如果你只想要某個分支的某幾個 Commit?
Git: Cherry-pick - 選擇某個分支的某些提交記錄


#Git







Related Posts

MySQL Server 安裝

MySQL Server 安裝

[Linux] Docker中 COPY 和 -v 的使用場景

[Linux] Docker中 COPY 和 -v 的使用場景

CS50 Internet Primer

CS50 Internet Primer


Comments