Upvotes
0
Upvotes: 0git stash後, 如果因為後續進行主線的rebase, 等到stash pop後是否會蓋掉rebase?
不會。 git stash pop 不會覆蓋或破壞 rebase 的提交紀錄。簡單來說:rebase 是在修改歷史紀錄(像是在排隊),而 stash 是把未完成的工作暫時藏到口袋裡。1. 概念比喻Rebase: 想像你正在整理一疊重要文件(Commit)。Rebase 就像是把這些文件抽出來,重新洗牌並安插在最新的官方公告後面。Stash pop: 就像是把剛才臨時塞進口袋(暫存區)的草稿紙拿出來,貼在桌面上。2. 運作流程當你執行 git stash pop,Git 會把暫存的進度拿出來,並「套用」到目前的程式碼上。如果你先 stash、接著做主線 rebase、最後 stash pop,此時的桌面(程式碼)已經是最新的了。pop 只會把你的草稿內容加到現在的專案裡,絕對不會去刪除或蓋掉你剛剛做好的 rebase 歷史紀錄。3. 注意事項:可能發生衝突 (Conflict)雖然不會蓋掉紀錄,但兩者內容如果有衝突,還是需要手動解決:當桌面檔案與草稿修改到同一行時: pop 會失敗並跳出衝突警告。解決方法: 你必須打開檔案、選擇要留下的程式碼、手動 git add 後再完成處理。4. 進階建議(自動暫存)你不用每次都手動執行 stash 和 pop。Git 內建了自動暫存功能:執行 rebase 時,可以直接加上 --autostash 參數,Git 就會自動幫你暫存與還原。你可以透過以下指令設定,讓它成為預設行為:git config --global rebase.autoStash true (https://share.google/aimode/pJxMngSKcSuzAZMUk)
https://stackoverflow.com/questions/27116671/automatically-stash-save-pop-changes-on-git-rebase
https://zhuanlan.zhihu.com/p/2045228718675775975 https://www.reddit.com/r/git/comments/q1sbeh/is_my_explanation_of_git_pull_rebase_correct/?tl=zh-hant https://ithelp.ithome.com.tw/m/articles/10277790 https://zhuanlan.zhihu.com/p/2045228718675775975