What does UserA committed with UserB 13 days ago on github mean?

前端 未结 3 1677
迷失自我
迷失自我 2020-12-25 09:48

I am interested in knowing which one of the two users made the file changes when github lists both. The git record contains only UserA however.

相关标签:
3条回答
  • 2020-12-25 10:00

    UserA is the one who actually made the changes. UserB is the one who committed those changes to this branch. i.e if UserA commits his changes to branch1, UserB comes, commits a couple changes to branch2, rebases branch1 with branch2. Now, topmost commits in branch1 will show that UserA has committed these changes with UserB.

    Edit: This mainly happens during rebasing and cherry-picking, since authors and committers can be different in these processes.

    0 讨论(0)
  • 2020-12-25 10:05

    Another one of possible reasons behind this happening is by using $GIT_AUTHOR_NAME and $GIT_AUTHOR_EMAIL env variables.

    When these variables are set, they override the author part of every onward commit no matter what user.name and user.email config values are set locally. In this case, when you hit git cat-file -p HEAD, author shows value of $GIT_AUTHOR_NAME and committer shows value of local user.name configuration.

    So you'll need to remove lines that export these variables in .bashrc or .zshrc, or if you want to preserve those lines but just don't want this thing happen, insert unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL before running git commit.

    0 讨论(0)
  • 2020-12-25 10:15

    @venkatKA's answer is accurate and descriptive but I thought I'd add a few details.

    git cat-file -p HEAD can be used to print out information about the commit

    tree d85ed3c3a055c95445898a5119ea0a532459fdsf
    parent 0b6ed951b2c04b4134c91ffa053b4330edfdffc1
    author AuthA <autha@email.com> 1487356245 +0000
    committer AutbB <aubt@email.com> 1487356245 +0000
    

    If you want to fix historic committers (for example if you are changing your identity) then you can use:

    git filter-branch -f --tree-filter "GIT_COMMITTER_NAME='New Author'; GIT_COMMITTER_EMAIL='New Author'" 
    

    The standard comments about rebases breaking history and why revisionism is a bad idea apply.

    0 讨论(0)
提交回复
热议问题