天天看点

合并多次本地commit为一条commit,推送远端

git 合并多次本地commit为一条commit,推送远端

方法一:git rebase

1,git rebase -i commitID为要合并成一条的id的上一条

2,输完上面指令会进入编辑文件,输入i进入编辑模式,将要合并的(以pick开头的)改为squash(压缩合并);按esc退出,:wq

3,报错后会再进入另一个编辑文件,如果需要修改commit的message可以按i编辑,不修改的话直接:wq 保存退出后提示:Successfully rebased and updated refs/heads/master

即为合并commit成功,可以输git log --oneline查看

4,git push

方法二:git reset

1,git reset --soft 同方法一中的第1条

2,git commit -m ‘’ 即可将commitID后的所有commit合并成一条发送

以上两种方法都只能在为push远端之前进行的操作,如果push远端后想改之前的代码就需要使用git revert 回滚版本,修改完后再commit,这样不会修改覆盖本地已有的commit,从而不影响远端的push和pull

Tips:如果操作失误,又找不到之前的log,可以使用git reflog 查看本地所有git操作的id,然后git reset --hard 版本回退