压缩多个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'; | ||