여러 Git 커밋의 작성자를 변경하는 방법

1871 단어 gitsnippet

문제



내 GitHub 리포지토리에 액세스하는 두 개의 계정이 있습니다. 그 중 하나를 전역 설정으로 설정했습니다. 리포지토리별로 기본 세부 정보를 다른 계정으로 재정의합니다. 때때로 나는 기본값을 무시하는 것을 잊고 몇 번의 커밋을 한 후에야 그것을 깨닫습니다.

이 게시물은 잘못된 세부 정보로 커밋을 몇 번 수행한 후 작성자를 업데이트하는 방법을 보여줍니다.

해결책



먼저 작성자 세부 정보로 gitconfig를 업데이트해야 합니다.

[user]
name = author_name
email = author_email


다음 명령을 실행할 수 있습니다.

git rebase -i <commit_hash> -x "git commit --amend --reset-author -CHEAD"



  • git rebase -i : 대화형 모드에서 git rebase를 실행하여 프로세스에서 개별 커밋을 변경할 수 있습니다.

  • : 작성자를 업데이트하려는 커밋의 해시입니다.

  • -x : 커밋을 생성하는 각 줄에 셸 명령을 추가합니다.

  • git commit —amend : 가장 최근 커밋을 수정합니다.

  • —reset-author : 작성자를 .gitconfig의 설정으로 재설정합니다.

  • -CHEAD : -C는 기존 커밋 개체를 가져와 사용자가 편집할 수 없도록 로그 메시지를 재사용합니다. HEAD는 우리가 보고 있는 현재 커밋을 나타냅니다. -CHEAD는 편집기를 열지 않고 현재 커밋에서 메시지를 가져옵니다.

  • 그런 다음 원하는 모든 커밋을 확인하는 편집자가 표시됩니다.

    다음 명령을 실행하여 루트를 포함한 모든 커밋의 작성자를 업데이트할 수 있습니다.

    git rebase -i --root -x "git commit --amend --reset-author -CHEAD"
    


    결론



    이렇게 하면 지정된 모든 커밋에 대한 작성자 세부 정보가 업데이트됩니다.

    참조


  • git-commit Documentation
  • gitrevisions Documentation
  • git-rebase Documentation
  • 좋은 웹페이지 즐겨찾기