开发者

How to know which branch a "git log" commit belongs to?

开发者 https://www.devze.com 2023-03-29 05:44 出处:网络
If I do git log, is there any parameter I could specify to be able to tell from the output which branch every commit belongs to?

If I do git log, is there any parameter I could specify to be able to tell from the output which branch every commit belongs to?

Edit: to clarify, I understand that a commit may be part of two branches (for instance). What I want is to get the开发者_运维问答 most recent branch that the commit in log belongs to. So, if I made a branch called foo from master. It would belong to both branches, but I want to get foo.


I think that what you're looking for is the very useful command:

git branch -a --contains <SHA1sum-of-commit>

... which will tell you every branch (both local and remote-tracking) that contains that commit.

Unfortunately, I don't think there's a git log option that just outputs this for every commit. Using --all --source is close, but will only display one of the branches for each commit. However, if you click on a commit in gitk --all, you'll see that it lists every branch that that commit is on.

There's one part of your question that isn't very well defined, however - you ask:

What I want is to get the most recent branch that the commit in log belongs to

It isn't clear to me what you mean by this - the "most recent branch" might be (a) the most recently created ref (b) the most recently modified ref (c) the branch with the most recent commit on it, etc. etc. There's probably a better way of defining what you want in terms of the commit graph.


With git log you already get all the commits from the current branch you are on.

If you want to see commits from merged branches you can use

$ git log --pretty=oneline --graph

To create a log tree and see what merged branches a commit stems from.

--graph will make the commit tree and --pretty=oneline will make a one line visualization for every commit

To add branches (as refs) to the log:

$ git log --all --source --pretty=oneline --graph

To display branches with commits:

$ git show-branch


Have you tried the "--decorate" option to git log?

I have this alias in my .gitconfig:

[alias]
        k = log --graph --oneline --abbrev-commit  --decorate

It shows a similar graph as the one shown by gitk, with the branch names "decorated" besides the most recent commit in the branch.

0

精彩评论

暂无评论...
验证码 换一张
取 消