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_EMAIL
env 변수를 사용하는 것입니다.
이러한 변수가 설정되면 로컬로 설정된 값 user.name
과 user.email
구성 값에 관계없이 모든 후속 커밋의 작성자 부분을 재정의합니다 . 이 경우를 치면 git cat-file -p HEAD
작성자는의 값을 표시 $GIT_AUTHOR_NAME
하고 커미터는 로컬 user.name
구성의 값을 표시 합니다.
따라서 .bashrc
또는 에서 이러한 변수를 내보내는 행을 제거해야합니다. 또는 .zshrc
해당 행을 보존하고 싶지만 이런 일이 발생하지 않도록하려면 unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL
git commit을 실행하기 전에 삽입하십시오 .
'IT박스' 카테고리의 다른 글
HDF5-동시성, 압축 및 I / O 성능 (0) | 2020.11.21 |
---|---|
서비스 워커의 스토리지 한도는 얼마인가요? (0) | 2020.11.21 |
어떤 cygwin 미러 사이트가 완성 되었습니까? (0) | 2020.11.21 |
JAXB : 맵을 마샬링하는 방법 (0) | 2020.11.21 |
SQL의 이중 콜론 (: :) 표기법 (0) | 2020.11.21 |