在开发中我们需要保持远程仓库清洁,不希望本地开发多次提交信息都提交到远程仓库;
第一种方法:git rebase -i
在终端输入: git rebase -i HEAD~2 这里的 HEAD~2 表示合并最近两次的提交, 如果想合并最近三次的提交修改为: git rebase -i HEAD~3
touch a.txt
git add .
git commit -m "first"
touch b.txt
git add .
git commit -m "second"
查看version controll

- 这时候本地feature分支有2条提交信息了,现在我们想合并一条提交到远程仓库
git rebase -i HEAD~2

- 将第二行的 pick 改为 s “s” 为 “squash” 的缩写
“squash” 的意思是 将倒数第二次提交 压缩为最后一次提交

-
:wq!保存
image.png
4.重新修改提交信息

-
:wq!保存,查看version controll
image.png
-
push到远程仓库
git push -u origin feature
第二种方法:git commit --amend
这种方式就是把本次想要提交的和上次合并一个
touch a.txt
git add .
git commit -m "test amend"
touch b.txt
git add .
//会提示你重新修改描述信息,根据你自己来决定
git commit --amend
第三种方法:git reset
参考:五、git reset
查看刚开始verison controller

touch c.txt
git add .
git commit -m "test reset"

git reset --soft 64abeb0c
#这时候64abeb0c前的提交都是未暂存状态
git add .
git commit -m "new test reset"

网友评论