cherry-pick
把 dev 分枝上的commit ,cherry pick 到 master 上:
1、git checkout master
2、git cherry-pick e489b72f61f39e5b80bb633594a06f60eeabece6 ea66d5cb31c937763d34d91e7e8b3b240010b5ac
可cherry pick多条commit
rebase
合并多个Commit
git rebase -i HEAD~2 或者 git rebase -i HEAD^^ 或者 git rebase -i “版本号”
第一列是rebase具体执行的操作,其中操作可以选择,其中含义如下:
- 选择
pick
操作,git会应用这个补丁,以同样的提交信息(commit message)保存提交 - 选择
reword
操作,git会应用这个补丁,但需要重新编辑提交信息 - 选择
edit
操作,git会应用这个补丁,但会因为amending而终止 - 选择
squash
操作,git会应用这个补丁,但会与之前的提交合并 - 选择
fixup
操作,git会应用这个补丁,但会丢掉提交日志 - 选择
exec
操作,git会在shell中运行这个命令
将第二个pick
改成squash
或者s
,然后保存退出。
git Head 前进后退
基于索引值前进后退版本
1. git reflog
2. git reset --hard c1ca797(图片中的索引值)推荐
reset:三个参数的区别
--hard:在本地库移动HEAD指针,并重置暂存区和工作区
--mixed:在本地库移动HEAD指针,并重置暂存区,好像是工作区修改一样(本地库 暂存区一个维度)
--soft:仅仅在本地库移动HEAD指针,这样暂存区相对于本地库就好像修改一样,(工作区和暂存区一个维度)
只用 ^ 符号,只能后退,后退几步,几个^: git reset --hard HEAD^
~ 符号,只能后退,: git reset --hard HEAD~3 (后退三步)