일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Absolute
- AGI
- ai
- AI agents
- AI engineer
- AI researcher
- ajax
- algorithm
- Algorithms
- aliases
- Array 객체
- ASI
- bayes' theorem
- Bit
- Blur
- BOM
- bootstrap
- canva
- challenges
- ChatGPT
- Today
- In Total
A Joyful AI Research Journey🌳😊
Git, Mac) 커밋한 후 특정 Author, Committer의 이름 수정하기 본문
Git, Mac) 커밋한 후 특정 Author, Committer의 이름 수정하기
yjyuwisely 2023. 6. 10. 20:27처음에 터미널에서 깃허브 아이디, 비밀번호 설정할 때
깃허브에서 발급받은 클래식 토큰(Tokens(Classic))을 비밀번호로 사용한다.
1) 폴더 경로를 지정해 주고
예시) cd /Users/yeongjinyu/Documents/github
2) git clone을 한다.
예시) git clone https://github.com/yjyuwisely/Traveling-from-Ulju-gun.git
git clone 깃주소
3) 폴더 경로로 들어간다.
예시) cd /Users/yeongjinyu/Documents/github/Traveling-from-Ulju-gun
터미널에서 깃허브 커밋 History에 있는 잘못 입력된
4) 특정 Author의 이름을 자신이 원하는 깃허브 id로 수정하는 방법은 다음과 같다.
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_NAME" = "잘못 입력된 Author's ID" ]
then
GIT_COMMITTER_NAME="$원하는 ID"
GIT_COMMITTER_EMAIL="$원하는 EMAIL"
git commit-tree "$@"
else
git commit-tree "$@"
fi' -- --branches --tags
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_NAME" = " export GIT_AUTHOR_EMAIL=@gmail.com”" ]
then
GIT_COMMITTER_NAME="$yjyuwisely"
GIT_COMMITTER_EMAIL="$yjyuwisely@gmail.com"
git commit-tree "$@"
else
git commit-tree "$@"
fi' -- --branches --tags
4.1) 다른 방법으로, 깃허브 Commit 히스토리에 있는 Copy the full SHA를 이용해서
코드에 자신이 원하는 Committer, Author의 ID, EMAIL을 각각 추가하면 된다.
결과로, 깃허브 History에서 특정 ID가 커밋했다고 나온다.
git filter-branch --commit-filter '
if [ $GIT_COMMIT = 커밋 ID ]
then
export GIT_AUTHOR_NAME="$원하는 ID"
export GIT_AUTHOR_EMAIL="$원하는 EMAIL"
export GIT_COMMITTERS_NAME="$원하는 ID"
export GIT_COMMITTERS_EMAIL="$원하는 EMAIL"
fi
git commit-tree "$@"
' -- --branches --tags
git filter-branch -f --commit-filter '
if [ $GIT_COMMIT = 0e9a567c2c04c2d0c09df51b88950034b54c1666 ] ||
[ $GIT_COMMIT = 03a9f0e18c491d838b820d6b7daadfee6b238506 ] ||
[ $GIT_COMMIT = e0bc86ef3fa54d363a3ac5b39ad7a3932c5aa327 ] ||
[ $GIT_COMMIT = 8cc73d934734d138498a2e17fc646323e230c51d ] ||
[ $GIT_COMMIT = f3d60c7e98781bbdea6eee7580882432da24c55f ] ||
[ $GIT_COMMIT = f2f685918250bfe4c2e1f5518f5559518457da05 ]
then
export GIT_AUTHOR_NAME="$yjyuwisely"
export GIT_AUTHOR_EMAIL="$yjyuwisely@gmail.com"
export GIT_COMMITTERS_NAME="$yjyuwisely"
export GIT_COMMITTERS_EMAIL="$yjyuwisely@gmail.com"
fi
git commit-tree "$@"
' -- --branches --tags
git filter-branch -f --commit-filter '
if [ $GIT_COMMIT = ace20bb04315f0941473f012c2e286448f5b7300 ]
then
export GIT_AUTHOR_NAME="$yjyuwisely"
export GIT_AUTHOR_EMAIL="$yjyuwisely@gmail.com"
export GIT_COMMITTERS_NAME="$yjyuwisely"
export GIT_COMMITTERS_EMAIL="$yjyuwisely@gmail.com"
fi
git commit-tree "$@"
' -- --branches --tags
4.2) 하단은 깃허브 Commit 히스토리에 있는 Copy the full SHA를 이용해서
Committer의 이름, 이메일을 변경하는 방법이다.
* 주의할 점은 아이디, 이메일 앞에 $을 사용하지 않는다.
git filter-branch --env-filter '
if [ $GIT_COMMIT = 커밋 ID1 ] ||
[ $GIT_COMMIT = 커밋 ID2 ] ||
[ $GIT_COMMIT = 커밋 ID3 ]
then
export GIT_COMMITTER_NAME="원하는 ID"
export GIT_COMMITTER_EMAIL="원하는 EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
git filter-branch -f --env-filter '
if [ $GIT_COMMIT = c9487a021a930fe4e64a6425467fd5ac32fb219e ] ||
[ $GIT_COMMIT = 8f01743142ba72e3e15ec5d79d4804df66df2812 ] ||
[ $GIT_COMMIT = bac202c9abf2b30765a8b22928888ca0be29d3d7 ] ||
[ $GIT_COMMIT = 3810e5d9a5ed0464671ebaf62e9c2488a178598d ] ||
[ $GIT_COMMIT = b4ae165e784bad1df4d4a499597f57f73ebd0f6e ] ||
[ $GIT_COMMIT = dec4d0d04c37020add66733d1a2e9e7deca41242 ] ||
[ $GIT_COMMIT = bee2469629bf553ea023cd634a4037a3d9706d4b ]
then
export GIT_COMMITTER_NAME="yjyuwisely"
export GIT_COMMITTER_EMAIL="yjyuwisely@gmail.com"
fi
' --tag-name-filter cat -- --branches --tags
git filter-branch -f --env-filter '
if [ $GIT_COMMIT = ace20bb04315f0941473f012c2e286448f5b7300 ]
then
export GIT_COMMITTER_NAME=“GR”
export GIT_COMMITTER_EMAIL=“GR@gr.com”
fi
' --tag-name-filter cat -- --branches --tags
4.3) 하단은 Author와 Committer의 이름을 일치시키는 코드이다.
git filter-branch --commit-filter '
if [ $GIT_COMMIT = 커밋 ID1] ||
[ $GIT_COMMIT = 커밋 ID2] ||
[ $GIT_COMMIT = 커밋 ID3] ||
[ $GIT_COMMIT = 커밋 ID4] ||
[ $GIT_COMMIT = 커밋 ID5] ||
[ $GIT_COMMIT = 커밋 ID6] ||
[ $GIT_COMMIT = 커밋 ID7]
then
export GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
fi
git commit-tree "$@"
' --tag-name-filter cat -- --branches --tags
git filter-branch --commit-filter '
if [ $GIT_COMMIT = 0e9a567c2c04c2d0c09df51b88950034b54c1666 ] ||
[ $GIT_COMMIT = 03a9f0e18c491d838b820d6b7daadfee6b238506 ] ||
[ $GIT_COMMIT = e0bc86ef3fa54d363a3ac5b39ad7a3932c5aa327 ] ||
[ $GIT_COMMIT = 8cc73d934734d138498a2e17fc646323e230c51d ] ||
[ $GIT_COMMIT = f3d60c7e98781bbdea6eee7580882432da24c55f ] ||
[ $GIT_COMMIT = f2f685918250bfe4c2e1f5518f5559518457da05 ]
then
export GIT_AUTHOR_NAME="$GIT_COMMITTER_NAME"
export GIT_AUTHOR_EMAIL="$GIT_COMMITTER_EMAIL"
fi
git commit-tree "$@"
' --tag-name-filter cat -- --branches --tags
git filter-branch --commit-filter '
if [ $GIT_COMMIT = 0d169a0c881586d95b8d9b367488fd054291964a ] ||
[ $GIT_COMMIT = 839ac762a6336bea854b4002529489446f41cae9 ] ||
[ $GIT_COMMIT = 4264efecfdb21af0eca6e0b2933acd44bb97caff ] ||
[ $GIT_COMMIT = ea68a9d2b51f8423b3f77cfbda466e9d0f9f6fd0 ] ||
[ $GIT_COMMIT = a8e63057e432df086989c9e474a672067dcdf861 ] ||
[ $GIT_COMMIT = a90046558c6c922c19b3978bb5b749c255163f45 ] ||
[ $GIT_COMMIT = 17acdb806d311df26bf06371f1a952b217f9f570 ] ||
[ $GIT_COMMIT = 9fcf391c4df3b3f005d7602513f07dd850864ca2 ] ||
[ $GIT_COMMIT = d57e6d04beec430205c575db394afe510365475a ] ||
[ $GIT_COMMIT = f2411507c7c43a854e78afb268dd33bd5703c9a2 ] ||
[ $GIT_COMMIT = 707aa5c25261aad307dfb1c0283e87dd095d088e ] ||
[ $GIT_COMMIT = fe573ca78cf31e2edc42e4769c9104bfd2df27b1 ]
then
export GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
fi
git commit-tree "$@"
' --tag-name-filter cat -- --branches --tags
5) 마지막으로, 하단의 코드를 입력한다. 자신의 branch 이름으로 수정한다.
예시) git push --force origin master
In summary, --env-filter is used to modify the commit environment variables, while --commit-filter is used to modify the commit object itself.
Instead of modifying the commit history using git filter-branch, you can consider using other methods such as git rebase or git commit --amend to change the author information on individual commits. These methods allow you to modify the most recent commits without rewriting the entire history.
'💻Bootcamp Self-Study Revision✨ > Git, GitHub' 카테고리의 다른 글
git push -u origin master (0) | 2023.07.26 |
---|---|
Git 명령어 정리 노트 (0) | 2023.07.25 |
Git, Mac) 이미 커밋한 용량이 큰 Repository의 파일의 Committer 이름을 수정할 경우 (0) | 2023.06.10 |
Git, Mac) 이미 커밋한 Committer 이름 하나씩 변경하기 (0) | 2023.06.10 |