Git Commit์ ๋ ์ง ๋ณ๊ฒฝ ๋ฐ ์ปค๋ฏธํฐ(Committer)๋ณ๊ฒฝํ๊ธฐ | Committer
- -
๋ชจ๋ ํฌ์คํ ์ ๊ตฌ๋ฆ์๋ ๊ฐ์ข ์ค "Git์ผ๋ก ์์ํ๋ ํ์ ๋ฐ ์คํ์์ค ํ๋ก์ ํธ" ์ ๋ด์ฉ์ ๋ด๊ณ ์์ผ๋ฉฐ
์ถ์ฒ๋ ์๋์ ์ฃผ์๋ก "๋๋๋น"๋์ ์๋ฃ์ ๋๋ค.
์์ ์ ์ธ ์๋๊ฐ ์๋ ๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํด๋๋ ๋ชฉ์ ์ผ๋ก ํฌ์คํ ํ ๊ฒ์ ๋๋ค.
edu.goorm.io/learn/lecture/11528/git์ผ๋ก-์์ํ๋-ํ์ -๋ฐ-์คํ์์ค-ํ๋ก์ ํธ/info
# Git Commit์ ๋ ์ง ๋ฐ ์๊ฐ ๋ณ๊ฒฝ
๊ธฐ๋ณธ์ ์ผ๋ก ๊น์ ํน์ ํ ํ๋ก์ ํธ์ ์์ค์ฝ๋๊ฐ ์ธ์ ๋ณ๊ฒฝ๋์๋์ง๋ฅผ ๊ฐ์งํด์ ๊ทธ ์ด๋ ฅ์ ์๋ ค์ค๋ค๋ ํน์ง์ด ์๋ค.
์ฆ ์ปค๋ฐ์ด ์งํ๋ ์์ ์ ๊ธฐ์ตํ์ฌ ๊น ์ฌ์ฉ์์๊ฒ ์๋ ค์ฃผ๋ ๊ฒ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊น ์ปค๋ฐ ๋ ์ง๋ ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ต๊ฑฐ๋ ๋ชปํ๋ค๊ณ ์๋ ์ฌ๋์ด ๋ง์๋ฐ, ์ค์ ๋ก๋ ์ด ๋ ์ง ๋ํ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
์ค์ต์ ์ํด ์ด์ ์๊ฐ๊ณผ ๋์ผํ๊ฒ ํ๋ก์ ํธ ํ์ผ์ ํ๋ ๋ง๋ค์ด ์ฃผ๊ณ , git init์ ํด์ค๋ค.
(๋ง์ฝ ์ด์ ์ ๋ก๊ทธ๊ฐ ๋จ์์๋ค๋ฉด "rm -rf .git" ๋ช ๋ น์ด๋ก ์ง์์ค ํ ๋ค์ git init๋ฅผ ํด์ฃผ์ด๋ ๋๋ค.)
๊ทธ๋ฆฌ๊ณ ์๋ก ํ ์คํธ ํ์ผ์ ํ๋ ๋ง๋ค์ด์ค ๋ค ์ปค๋ฐ ์์ผ์ค๋ค.
๋ค์ํ ์ปค๋ฐ ๋ก๊ทธ๋ค์ ๋จ๊ธฐ๊ธฐ ์ํด ํ์ผ์ ์์ ํด์ค ํ ๋ค์ ์ปค๋ฐ์ ์์ผ์ค๋ค.
์์ ๊ฐ์ ์์ ์ Example2.txt๋ผ๋ ํ์ผ์ ๋ง๋ค์ด์ ์คํ์์ผ์ฃผ๋ฉด ์ด 4๋ฒ์ ์ปค๋ฐ ๋ก๊ทธ๊ฐ ๋จ๊ฒ ๋๋ค.
git log ๋ฅผ ์ฐ์ด๋ณด๋ฉด ์ ์์ ์ผ๋ก 4๋ฒ์ด ์ถ๋ ฅ๋๋ค.
ํํ commit๋ ๋ ์ง๋ฅผ ๋ฐ๊พธ๋ ค๋ฉด 2๊ฐ์ง์ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค.
1. git rebase๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ.
์์ ํ๊ณ ์ ํ๋ ๋ด์ฉ๋ง ์ ํํ์ฌ ์์ ํ ์ ์๋ค. ์๋๋ git rebase์ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ํ๋ธ๋ค.
lucete1230-cyberpolice.tistory.com/414
git rebase -i <hash value>
์ ๋ช ๋ น์ด๋ฅผ ํตํด ์์ ํ๊ณ ์ ํ๋ ์ปค๋ฐ๋ด์ญ์ ์ต์ ์ ๋ฐ๊พธ์ด ์ฃผ์
์์ ํ ์ปค๋ฐ์ Add Example2.txt์ด๋ค. ์ต์ ์ edit๋ก ํด์ฃผ๋ฉด ๋๋ค.
๋ค์์ผ๋ก๋ ์์ธํ ๋ณ๊ฒฝ ๋ด์ฉ์ ๊ธฐ์ฌํด์ฃผ๋ฉด ๋๋ค.(10์ 1์ผ 10์๋ก ์ค์ )
์ฐธ๊ณ ๋ก ์์ผ์ ๋ํ ์ ๋ณด๋ ์ ์ง ์์๋ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๋๋ค.
GIT_COMMITER_DATE="Oct 1 10:00:00 2019 +0000" git commit --amend --no-edit --date "Oct 1 10:00:00 2019 +0000"
amend ์ต์ ์ผ๋ก ์ฑ๊ณต์ ์ผ๋ก ๋ ์ง ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค.
log๋ฅผ ํ์ธํด๋ณด๋ฉด ๋ณ๊ฒฝํ๊ณ ์ ํ๋ Add Example2.txt์ ๋ ์ง๊ฐ ์ ์์ ์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
amend๋?
lucete1230-cyberpolice.tistory.com/407
์ดํ rebase ๋ช ๋ น์ด์ continue ์ต์ ์ ๋ถ์ฌ์ ๋ณ๊ฒฝ๋ ๋ด์ญ์ ๋ฐ์ํ๊ฒ ๋ค๊ณ ๋ฃ์ด์ฃผ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ์์ ํ ๋ฐ์์ด ๋๋ค.
git rebase --continue
2. filter ๊ธฐ๋ฅ ์ด์ฉํ๊ธฐ
๊น์์๋ ํํฐ ๊ธฐ๋ฅ์ ์ง์ํ๊ณ ์๋ค. ํํฐ ๊ธฐ๋ฅ์ ์ด์ฉํ๋ฉด ๋ชจ๋ ์ปค๋ฐ์ ๋ด์ญ๋ค์ ๋ค ํ๋์ฉ ์ดํด๋ณด๋ฉฐ ํํฐ๋ง์ ์ํํ๋ค๋ ํน์ง์ด ์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง๋ ๊ฒฝ์ฐ ์ค๋์๊ฐ์ด ๊ฑธ๋ฆด ์ ์๊ธฐ๋ ํ๋ค.
๋ช ๋ น์ด๋
git filter-branch -f --env-filter \
ํํฐ๋ฅผ ์ํํ ๋๋ ์ฝ ์ฐ์ด์ ๊ทธ ๋ถ๋ถ๋ง ์์ ์ด ๊ฐ๋ฅํ๋ค.
ํํฐ๋ฅผ ์ด๋ป๊ฒ ํํฐ๋ง์ ์ํํ ์ง ์ํํ ๋ถ๋ถ์ ๋ํ ๋ด์ฉ์ ์ธ ์ ์๋๋ฐ, if ๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค.
ํด๋น ์ปค๋ฐ ํด์๊ฐ์ ๋ฃ์ด์ฃผ๊ณ ์กฐ๊ฑด๋ฌธ์ผ๋ก ํํฐ๋ฅผ ์งํํด์ฃผ๋ฉด ๋๋๋ฐ
์์๊ณผ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก ํด๋ ๊ณ์ ์ค๋ฅ๊ฐ ๋์ ์๋ก์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ๋์๋ ์ฐพ์๋ณด๊ณ ์๋ค.
์ผ๋จ ์ด๋ฌํ ๋ฐฉ๋ฒ๋ ์๊ตฌ๋ ํ๊ณ ์์์ ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค.
์ด๋ ๊ฒ ๋ณ๊ฒฝ๋ ํ ๋ ํ๊ฐ์ง์ ํน์ง์ด๋ผ ํ๋ฉด, ๋ณ๊ฒฝ๋ ์์ ๋ถํฐ ๊ทธ ์ดํ์ ๋ชจ๋ ์ปค๋ฐ์ ๋ํด ํด์ฌ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ค๋ ์ ์ด๋ค.
์ด๋ฒ์๋ ํํฐ๋ง์ ์ด์ฉํด์, ์ปค๋ฏธํฐ ์ฆ ์ปค๋ฐ์ ํ ์ฌ์ฉ์๋ฅผ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋๋ก ํ์.
# ์ปค๋ฏธํฐ ๋ฐ๊พธ๊ธฐ
์ด๋ฒ์๋ ์ ์ ํํฐ๋ฅผ ํ๋ ๋ฐฉ์๊ณผ ๋น์ทํ์ง๋ง ์ฝ๋๊ฐ ์กฐ๊ธ๋ ๊ธธ๋ค.
๋จผ์ " git filter-branch -f --env-filter ' " ๋ช ๋ น์ ์ ๋ ฅ ํ ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์คํ์ํจ๋ค.
OLD_EMAIL="test2@test.com"
CORRECT_NAME="ndb792"
CORRECT_EMAIL="ndb796@naver.com"
if [ $GIT_COMMITTER_EMAIL = $OLD_EMAIL ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL=$"CORRECT_EMAIL"
fi
if [ $GIT_AUTHOR_EAMIL = $OLD_EMAIL ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi'
๋๋๋น๋์ ๊ฐ์๋ฅผ ๋ณด๋ฉด ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์งฐ์ง๋ง, ์๋ฌ์ฒ๋ฆฌ๊ฐ ๋์ ์ด๋ถ๋ถ๋ ๋์ค์ ๋ฐ๋ก ํฌ์คํ ํ๋๋ก ํ๊ฒ ์ต๋๋ค (์๋ฌํด๊ฒฐ ๋ฌธ์ )
์ด๋ ๊ฒ ๋๋ฉด ์์ฑ์๊ฐ ๋ชจ๋ ์ ์์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
์ฆ, ๋ ๊ฐ์ง ๋ณ๊ฒฝ ๋ฐฉ๋ฒ์ผ๋ก ๋ ์ง, ์๊ฐ, ์์ฑ์ ๋ฑ ์์ ์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ์ github ์ฆ ์๊ฒฉ ์ ์ฅ์์์๋ ๋ณ๊ฒฝ์ด ์ ์ฉ๋๋ฉฐ, ์ด์ ๋ ๋ ํน์ ์ง๋ ๋ ์ด๋ผ๋ ๋ณ๊ฒฝ์ด ์ ์์ผ๋ก ์ ์ฉ๋๋ค.
๋งํฌ๋ฅผ ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค.
'IT & Security > Git & GitHub' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
-
[Docker] Docker ๊ธฐ์ด ํ์ต / ์ฐ๋ ์ค 2022.05.18
-
Git Config ํ๊ฒฝ ์ค์ ์ ๋ํด ์์๋ณด๊ธฐ | Git Config | Git ํ๊ฒฝ์ค์ 2021.02.17
-
Git Rebase ๋ช ๋ น์ผ๋ก ํน์ ํ ์ปค๋ฐ ์์ &์ญ์ | Git Rebase 2021.02.17
-
Git Archive ๋ช ๋ น์ผ๋ก ์์ค์ฝ๋๋ง ์์ถํ๊ธฐ | Git Archive 2021.02.17
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค