git操作:根据修改历史找到该历史的所有分支(根据commit id 查找包含该commit id的所有分支)

问题描述

今天老大突然转过身大吼一声:又是你写都bug。我很纳闷,就问咋了,他指着代码说 这一行是不是你注释掉的,我就脸凑过去,看了一下,心里纳闷:没印象呀,这怎么是我弄的,我怎么可能会写出bug,随口说:看git history,结果还真是我修改的,于是,我就在本地打开工程,再确认了一下,确实是我写的,还是一个月以前,但是很奇怪,一个月以前的我应该是开发另一个工程的,而且另一个工程已经合master,master上没有这个问题呀,怎么会在现在开发的分支上,于是我想知道这个文件被那些分支修改过,或者说我的这个commid id 被那些分支拥有,这样便于自己了解这个到底是从哪个分支上合并过来的。

解决

1 首先查询出commit id
git log <filename>

利用git log 接文件名来获取这个文件的所有commit历史,其中还能有版本号,以及提交时带的备注信息,如图所示:
https://dfdfd

将版本号弄下来,也可以通过idea的git工具来查看具体的提交操作,也可以找到对应的commit id,
IDEA
这样我们就可以知道对饮修改的commit id了。

2 根据commit id查询包含该提交id的所有分支

知道commit id后查询出对应的所有分支,这个Git 操作主要有一些内容,

#查本地所有分支
git branch --contains CommitID
#查远程所有分支
git branch -r --contains CommitID
#查本地和远程的所有分支
git branch -a --contains CommitID

这样得到的结果是分支列表,如图所示:
https://dfdfd

总结

这样就可以清晰知道这个commit id 在那些分支中,也能帮助了解自己是在哪个分支上写的,正常这些个分支也都是你自己创建的,所以该是你都锅就是你的锅,逃不了的。

参考博客

git如何查看commit所属的分支

猜你喜欢

转载自blog.csdn.net/randompeople/article/details/80853013