合并多次提交 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';

 

 

 


 

posted @ 2016-10-13 13:20  托马斯布莱克  阅读(3488)  评论(0编辑  收藏  举报