-
git ์ถฉ๋ ๋ฐ์ ํด๊ฒฐ๋ฒComputer Science/๊ฐ๋ฐ 2024. 10. 26. 19:05๋ฐ์ํ
1. git ์ฃผ์ ๋ช ๋ น์ด
- git pull: ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋ก์ปฌ๋ก ๊ฐ์ ธ์ ๋ณํฉํ๋ ๊ฒ. ๋ก์ปฌ๊ณผ ์๊ฒฉ์ ๋ฒ์ ์ฐจ์ด๊ฐ ์๊ฒผ์๋ ๋๊ธฐํ๋ฅผ ํ๋ค.
- git merge: branch ๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ํตํฉํ๋ค. ์ฌ๋ฌ ๋ช ์ด ๋ธ๋์น๋ฅผ ๋๋ ์์ ํ๊ณ ์์ ๋ ์์ฃผ ์ฌ์ฉํ๋ค.
- git stash: ์์ ์ค์ธ ์ฝ๋๋ฅผ ์์๋ก ์ ์ฅํ๊ณ ์์ ํธ๋ฆฌ๋ฅผ ๊นจ๋ํ ์ํ๋ก ๋ง๋ค์ด ์ค๋ค. ์๋ฅผ ๋ค์ด, git pull์ ํ๊ธฐ ์ ์ ์ ์ฅํด๋๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
- git push: ๋ก์ปฌ์์ ์ปค๋ฐํ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ์ ์ ๋ก๋ํ๋ค. ๋ก์ปฌ์์ ์์ ์ ๋ง์น ํ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ๋ณ๊ฒฝ ์ฌํญ์ ๊ณต์ ํ ๋ ์ฌ์ฉํ๋ค.
2. Git ์ฌ์ฉ ์ค ์์ฃผ ๋ฐ์ํ๋ ์ค๋ฅ์ ํด๊ฒฐ๋ฒ
- ์ ๋ฐ์ดํธ ๊ฑฐ๋ถ ์ค๋ฅ
hint: Updates were rejected because the remote contains work that you do
์๊ฒฉ ๋ ํฌ์ ๋ก์ปฌ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์กด์ฌํ ๋ ๋ฐ์ํ๋ค. git pull ๋ช ๋ น์ด๋ฅผ ํตํด ์๊ฒฉ ๋ ํฌ์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ ๋๊ธฐํ ํ ๋ค์ ํธ์ํ๋ฉด ๋๋ค.
- ๋ธ๋์น๊ฐ origin/[branch name]๊ณผ diverge๋์๋ค๋ ์ค๋ฅ
Your branch and 'origin/[branch-name]' have diverged
์๊ฒฉ๊ณผ ๋ก์ปฌ์ ์๋ก ๋ค๋ฅธ ์ปค๋ฐ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ์ค๋ฅ์ด๋ค. git pull ๋ช ๋ น์ด๋ฅผ ํตํด ์๊ฒฉ ๋ธ๋์น์ ๋ณํฉํด ๋๊ธฐํํด์ค์ผ ํ๋ค.
- ๋ก์ปฌ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํ merge ์คํจ
Your local changes to the following files would be overwritten by merge:
๋ณํฉ ์ค ๋ก์ปฌ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฎ์ด์์์ง ๊ฐ๋ฅ์ฑ์ด ์์๋ ๋ฐ์ํ๋ค. git stash ๋ช ๋ น์ด๋ก ๋ณ๊ฒฝ ์ฌํญ์ ์์ ์ ์ฅํ ํ, git pull๋ก ์๊ฒฉ ๋ฒ์ ๊ณผ ๋ณํฉํ ๋ค์ git stash pop์ผ๋ก ์์ ์ ์ฅ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์ ๋ถ๋ฌ์ค๋ฉด ๋๋ค.
- ์๋ merge ์คํจ
CONFLICT (content): Merge conflict in [file_path]
๊ฐ์ ํ์ผ์ ๋ค๋ฅธ ์ฌ๋์ด ์์ ํ์ฌ ์๋ merge๊ฐ ๋ถ๊ฐํ ๋ ๋ฐ์ํ๋ค. ์ถฉ๋์ด ๋ฐ์ํ ํ์ผ์ ์ด์ด <<<<<<HEAD์ =======, >>>>>> ์ฌ์ด์ ์ฝ๋์์ ์ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ํ ํ ๋ณํฉํ๊ณ ์ ์ฅํ๋ค.
<<<<<< HEAD ๋ด ๋ณ๊ฒฝ ๋ด์ฉ ====== ์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ ๋ด์ฉ >>>>>> ์๊ฒฉ ๋ธ๋์น ์ด๋ฆ
- <<<<<< HEAD์ ======= ์ฌ์ด: ํ์ฌ ๋ก์ปฌ์์ ์์ ํ ๋ด์ฉ
- ======์ >>>>>> ์๊ฒฉ ๋ธ๋์น ์ด๋ฆ ์ฌ์ด: ์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ ๋ด์ฉ
- ์ด ์ค ํ๋๋ฅผ ์ญ์ ํ๊ฑฐ๋, ๋์ mergeํด์ ํ๋์ ๋ด์ฉ์ผ๋ก ๋ง๋ ๋ค.
<๋ก์ปฌ ๋ด์ฉ์ ์๊ฒฉ ์ํ๋ก ๋ฎ์ด์ฐ๊ณ ์ถ์๋: ์๊ฒฉ -> ๋ก์ปฌ>
git fetch --all
git reset --hard origin/<branch_name>
๋ก์ปฌ ์์ ๋ด์ฉ ์ ์ฒด๋ฅผ ์๊ฒฉ๊ณผ ๊ฐ์ด ๋ง๋ค์ด์ฃผ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค. ๋ฎ์ด์์ด ํ์๋ ์๊ฒฉ๊ณผ ๋ก์ปฌ์ด ๋์ผํ ์ํ๊ฐ ๋๋ค.
<๋ก์ปฌ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ์ ๊ฐ์ ๋ก ๋ฐ์ํ๊ณ ์ถ์๋>
git push -f ๋๋
git push --force
๊ฐ์ ํธ์๋ ๋ก์ปฌ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์์ ๊ฐ์ ๋ก ๋ฐ์ํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ด๋ค. ๋ค๋ฅธ ์ฌ์ฉ์์ ํ์ ์ค์ด๋ผ๋ฉด ์ด ๋ช ๋ น์ด๋ก ์ธํด ์ปค๋ฐ ๋ด์ญ์ด ์ง์์ง ์ ์์ผ๋ฏ๋ก ์กฐ์ฌํด์ ์ฌ์ฉํด์ผ ํ๋ค.
์์ ํ ์ฌ์ฉ๋ฒ: git push --force-with-lease
์๊ฒฉ ๋ ํฌ์์ ์์์น๋ชปํ ์ปค๋ฐ์ด ์ง์์ง๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
'Computer Science > ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Linux, ACL(access control list)๋? (0) 2025.01.06 git log, git reflog (0) 2024.10.31 ๋ก์ปฌ ํ๋ก์ ํธ GitHub์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ (0) 2024.10.25 Error response from daemon: conflict: unable to delete - image has dependent child images (0) 2024.07.09