问题
Actually am try to get a report on merge conflicts. I used 'git blame' to see who has changed what line, but i couldn't find the branch and repository name information.
Is there a way to find the repository name, branch name and author name of a file from 'git blame' or from commit ids' so that whenever a merge conflict occurs i can send an email to the authors who have touched that file/lines to resolve it.
回答1:
git blame should only give you the revision and author, but:
- as mentioned in "Git: Finding what branch a commit came from", you cannot easily pinpoint the branch where that commit has been made (branches can be renamed, moved, deleted...), even though
git branch --contains <commit>
is a start. - I doubt you can find the repository it came from (unless maybe by looking hard in the
git log
results, trying to find the parent of that commit comming from aref/remotes
namespace).
Now if you have a proper .mailmap
at the toplevel of the repository, you will have the right email addresses as well.
In the simple form, each line in the file consists of a canonical real name of an author, a whitespace, and an email address used in the commit (enclosed by
<
and>
) to map to the name. For example:
Proper Name <commit@email.xx>
来源:https://stackoverflow.com/questions/2846843/find-the-git-branch-or-branches-from-commit-id