合並多次提交 commits 到 新分支


 壓縮多個Commit


當你提交代碼進行代碼審查時或者創建一次pull request (這在開源項目中經常發生),你的代碼在被接受之前會被要求做一些變更。於是你進行了變更,並且直到下一次審查之前你沒有再次被要求進行變更過。在你知道又要進行變更之前,你已經有了一些額外的commit。理想情況下,你可以用rebase命令把多個commit壓縮成一個。

git rebase -i HEAD~[number_of_commits]

如果你想要壓縮最后兩個commit,你需要運行下列命令。

git rebase -i HEAD~2

運行該命令時,你會看到一個交互界面,列出了許多commit讓你選擇哪些需要進行壓縮。理想情況下,你選擇最后一次commit並把其它老commit都進行壓縮。

Git squash interactive

然后會要求你為新的commit錄入提交信息。這一過程本質上重寫了你的commit歷史。

Adding a commit message




其他方式:

[備忘]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';

 

 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM