programing

코드를 다른 사용자로 커밋하려면 어떻게 해야 합니까?

kingscode 2023. 8. 29. 21:40
반응형

코드를 다른 사용자로 커밋하려면 어떻게 해야 합니까?

저는 이것을 대본으로 할 수 있기를 원합니다.저는 기본적으로 Git에서 일부 코드의 전체 버전 기록을 다시 만들고 있습니다. 현재는 다른 버전 제어 시스템을 사용하고 있습니다.커밋의 원본 작성자(및 날짜)를 보존하면서 Git에 커밋을 추가할 수 있는 스크립트가 필요합니다.

커밋 작성자와 변경된 날짜/시간을 알고 있다고 가정하면 이 작업을 수행할 수 있는 Git 명령이 있습니까?Git-p4도 비슷한 일을 하기 때문에 그런 것 같습니다.저는 그저 그것을 할 수 있는 최선의 방법을 요청하는 것입니다.

다음을 확인하십시오.--author에 대한 선택권.git commit:

페이지에서:

--author=<author>

커밋 작성자를 재정의합니다.표준을 사용하여 명시적인 작성자 지정A U Thor <author@example.com>서식을 정하다그렇지않으면<author>는 패턴으로 가정되며 해당 작성자(즉, 해당 작성자)의 기존 커밋을 검색하는 데 사용됩니다.rev-list --all -i --author=<author>그런 다음 커밋 작성자가 처음 발견된 커밋에서 복사됩니다.

여기에 덧붙이자면: The--author승인된 답변에 언급된 옵션은 작성자를 재정의할 뿐 커밋의 커밋 정보는 무시됩니다.

대부분의 경우 올바른 동작이지만 어떤 이유로 인해 수동으로 커미터 정보를 재정의해야 하는 경우에는GIT_COMMITTER_NAME그리고.GIT_COMMITTER_EMAIL환경 변수(가 있습니다.GIT_COMMITTER_DATE또한).Git-내부-환경-변수 참조

$ GIT_COMMITTER_NAME="New Name" GIT_COMMITTER_EMAIL="name@email.com" git commit --author="New Name <name@email.com>"

이렇게 하면 커밋이 지정된 사용자에 의해 작성되고 커밋된 것처럼 보입니다.

이전 구성을 재정의하려면 git-commit과 함께 -c 옵션을 사용합니다.글로벌/프로젝트 구성에는 영향을 주지 않습니다.예를 들어 이름과 전자 메일을 재정의하려면 다음과 같이 하십시오.

git -c user.name='My Name' -c user.email='my@email.com' commit -m "Custom message"

그러나 추가 설정으로 유지할 생각이라면 별칭을 사용하는 것이 좋습니다.편집하기~/.gitconfig기본값이 아닌 각 사용자 및 전자 메일에 대한 새 별칭을 추가합니다.

[user]
  name = My Name
  email = default@email.com

[alias]
  commit-x = -c user.name='My X Name' -c user.email='mr_x@email.com' commit
  commit-y = -c user.name='My Y Name' -c user.email='mr_y@email.com' commit
  commit-z = -c user.name='My Z Name' -c user.email='mr_z@email.com' commit

별칭이 전체적으로 적용됩니다.시험해 보세요.

git commit -m "Custom message with committer and author My Name <default@email.com>"
git commit-x -m "Custom message with committer and author My X Name <mr_x@email.com>"
git commit-y -m "Custom message with committer and author My Y Name <mr_y@email.com>"
git commit-z -m "Custom message with committer and author My Z Name <mr_z@email.com>"

언급URL : https://stackoverflow.com/questions/3696938/how-do-you-commit-code-as-a-different-user

반응형