-
合并多个commit
说说我的一个合并多个commit的场景:因为修改了多个bug,所以本地有多个commit,然后push到gerrit之后报错,导致这个多个commit一连串报红,感觉很不友好。所以我想是不是可以把多个commit合并为一个commit,这样即使报红也只有一个commit报红。https://www.jianshu.com/p/964de879904a
https://blog.csdn.net/yinchuan_111/article/details/106913632(严格注意作者强调的重点)
实际操作:假如由旧往新有C0-C1-C2-C3-C4-C5这几个commit,现在要把C1-C5合并为一个commit,则要做如下操作:
git rease -i C0的commit-id或者git rease -i C1的commit-id^
这时会显示shell界面
pick C1
pick C2
pick C3
pick C4
pick C5
...
将C2-C5的pick修改为s,然后:wq!保存(注意第一个提交C1必须是pick,如果也是s则会报错Cannot 'squash' without a previous commit)
这时C2-C5会合并到C1生成一个新的commit并打开shell窗口,你可以在里面编辑commit-msg信息。然后:wq!保存
通过git log查看会发现C1-C5已经合并成一个commit了。
如果是在android studio,直接选中要合并的commit,然后Squash Commits...
-
查看没有push的commit
git cherry -v只能查看未传送代码库提交的描述/说明(唯一id)
git log master ^origin/master则可以查看未传送代码库提交的详细信息
但是如果push之后再pull,则上面的指令打印为空。 -
清空工作区未跟踪的文件
https://www.pudn.com/news/62cfb4645f75f3409eb5237e.html
什么场景下会用到:当从分支A fork出新的分支B,然后在分支B里新建了文件f,那么再切回A分支,如果commit会报
未跟踪的文件,这时需要把这些文件删除方可提交。
0 条评论