1.情况一
有一个master分支里面出现了bug,所以开启了一个debug分支进行调试。找到bug后fix,之后commit,想把这个fix后的commit给master分支。
当前HEAD指向master
git cherry-pick C4
2.情况二
自己开发了几个分支,但是现在要更改commit信息,这个commit并不是最近的一个commit,可能是好久之前的了
git rebase -i HEAD~2
gc -amend -m ""
git rebase -i HEAD~2
git rebase caption master
最后让caption合并到master下面
3 上面情况的第二种解决方法
git checkout master
git cherry-pick C2
gc --amend -m ""
git cherry-pick C3
4.情况三
自己commit上标记一个tag
git tag v1 C1
git checkout v1
HEAD指针就会指向v1所在的commit
5.上一个情况的扩展
查看当前最近的tag离你相差多少个commit
git describe <ref>
ref可以是分支可以使commitid也可以没有,如果没有就是当前位置
返回结果
<tag>_<numCommits>_g<hash>
tag:当前的名字
numCommites:离你有多少commit
hash commitid