壓縮多個Commit
當你提交代碼進行代碼審查時或者創建一次pull request (這在開源項目中經常發生),你的代碼在被接受之前會被要求做一些變更。於是你進行了變更,並且直到下一次審查之前你沒有再次被要求進行變更過。在你知道又要進行變更之前,你已經有了一些額外的commit。理想情況下,你可以用rebase命令把多個commit壓縮成一個。
git rebase -i HEAD~[number_of_commits]
如果你想要壓縮最后兩個commit,你需要運行下列命令。
git rebase -i HEAD~2
運行該命令時,你會看到一個交互界面,列出了許多commit讓你選擇哪些需要進行壓縮。理想情況下,你選擇最后一次commit並把其它老commit都進行壓縮。
然后會要求你為新的commit錄入提交信息。這一過程本質上重寫了你的commit歷史。
其他方式:
[備忘]git,合並分支時,把多個commit合並為一個commit | ||
如果你要把其他分支中幾個提交合並到當前分支並且壓縮為一個 commit //切換到要合並的分支 git checkout master //檢出要合並的分支 (如果有沖突解沖突 ) git cherry-pick 76cada 62ecb3 b886a0; // 把代碼重置到 cherry-pick 之前 git reset dd2e86; // git add and commit git add . git commit -m 'all in one';
如果你的代碼尚未Push到遠程服務器 只是壓縮本地commit 記錄 假如 本地有commit 76cada 62ecb3 .... b886a0 dd2e86 // reset 默認參數會保留工作區文件 只是去除 reset commit 號之后的 所有提交記錄 git reset dd2e86; //dd2e86 為本地多個想壓縮的commit 之前的最后一次 commit 號
// git add and commit git add . git commit -m 'all in one';
|
||