ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    ์›๊ฒฉ ๋ ˆํฌ์—์„œ ์˜ˆ์ƒ์น˜๋ชปํ•œ ์ปค๋ฐ‹์ด ์ง€์›Œ์ง€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

     

Designed by Tistory.