在git管理版本的情况下,避免不了回退代码,当知道提交的comment 时,如果想回退到该comment对应的那一点,通过git reset --hard HEAD +comment 是无法做到,这点也好理解,因为comment允许相同,如果这般可以的话,git又怎么会知道究竟是哪一点呢。所以可以用如下命令快速找到comment对应的那一点,当然相同的comment还是要人为的确认。
git log --pretty=format:%H --grep=COMMENT.
其中 --pretty=format:%H中,%H表示提交对象的完整哈希字串,常用的还有 %s ,表示提交说明。
--grep 会过滤掉不含提交信息说明的提交记录。
在合并某个单次提交时,可以用
git cherry-pick + commitID
命令快速的实现合并。比如现有两个分支:1.master 2.temp-dev ,temp-dev上的某次修改,master分支也需要take进来。那么就可以先记录下temp-dev 分支上修改点对应的commitID。然后在master 分支上执行git cherry-pick +commitID。这里有个小技巧。查看另一分支上的commitID时,可以不用切换到那个分支上,直接使用git log +[要查看的branch名] 。比如我在master上执行效果如图:
-1表示temp-dev 分支上的最后一次commit信息,还可以跟别的参数,再此不表。这步执行完成后,如果没有冲突,那么合并后新的节点信息和temp-dev branch 上的信息一样,如果想要更改commit ,可以使用
git reset --soft HEAD^
命令,这步执行完成后,代码变成了git add 完成后的状态,这时就可以使用git commit 命令写入新的coment 了。