IT박스

github에서 13 일 전에 UserB와 커밋 된 UserA는 무엇을 의미합니까?

itboxs 2020. 11. 21. 14:21
반응형

github에서 13 일 전에 UserB와 커밋 된 UserA는 무엇을 의미합니까?


github가 둘 다 나열 할 때 두 사용자 중 어떤 사람이 파일을 변경했는지 알고 싶습니다. 그러나 git 레코드에는 UserA 만 포함됩니다.


UserA는 실제로 변경 한 사람입니다. UserB는 이러한 변경 사항을이 분기에 커밋 한 사람입니다. 즉, UserA가 자신의 변경 사항을 branch1에 커밋하면 UserB가 와서 branch2에 몇 가지 변경 사항을 커밋하고 branch1을 branch2로 리베이스합니다. 이제 branch1의 최상위 커밋은 UserA가 UserB와 이러한 변경 사항을 커밋했음을 보여줍니다.

편집 :이 과정에서 작성자와 커미터가 다를 수 있기 때문에 이것은 주로 리베이스 및 체리 피킹 중에 발생합니다.


@venkatKA의 대답은 정확하고 설명 적이지만 몇 가지 세부 사항을 추가 할 것이라고 생각했습니다.

git cat-file -p HEAD 커밋에 대한 정보를 인쇄하는 데 사용할 수 있습니다.

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

역사적인 커미터를 수정하려면 (예 : 신원을 변경하는 경우) 다음을 사용할 수 있습니다.

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

역사를 깨는 리베이스와 수정주의가 왜 나쁜 생각인지에 대한 표준 의견이 적용됩니다.


이런 일이 발생하는 또 다른 이유 중 하나는 $GIT_AUTHOR_NAME$GIT_AUTHOR_EMAILenv 변수를 사용하는 것입니다.

이러한 변수가 설정되면 로컬로 설정된 값 user.nameuser.email구성 값에 관계없이 모든 후속 커밋의 작성자 부분을 재정의합니다 . 이 경우를 치면 git cat-file -p HEAD작성자는의 값을 표시 $GIT_AUTHOR_NAME하고 커미터는 로컬 user.name구성의 값을 표시 합니다.

따라서 .bashrc또는 에서 이러한 변수를 내보내는 행을 제거해야합니다. 또는 .zshrc해당 행을 보존하고 싶지만 이런 일이 발생하지 않도록하려면 unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAILgit commit을 실행하기 전에 삽입하십시오 .

참고 URL : https://stackoverflow.com/questions/37245303/what-does-usera-committed-with-userb-13-days-ago-on-github-mean

반응형