Search

Git Conflict & 좩돌 ν•΄κ²°

Git Conflict(좩돌)μ΄λž€?

Gitμ—μ„œ μΆ©λŒμ€ λ™μΌν•œ 파일의 같은 뢀뢄을 μ—¬λŸ¬ μ‚¬λžŒμ΄ μ„œλ‘œ λ‹€λ₯΄κ²Œ μˆ˜μ •ν–ˆμ„ λ•Œ λ°œμƒν•©λ‹ˆλ‹€. Git이 μ–΄λŠ λ³€κ²½ 사항을 선택해야 ν• μ§€ μžλ™μœΌλ‘œ νŒλ‹¨ν•˜μ§€ λͺ»ν•˜λŠ” 상황을 μ˜λ―Έν•©λ‹ˆλ‹€.

좩돌이 λ°œμƒν•˜λŠ” 일반적인 상황

β€’
μ—¬λŸ¬ κ°œλ°œμžκ°€ λ™μΌν•œ 파일의 λ™μΌν•œ 쀄을 μˆ˜μ •ν•  λ•Œ
β€’
ν•œ λΈŒλžœμΉ˜μ—μ„œ νŒŒμΌμ„ μˆ˜μ •ν•˜κ³ , λ‹€λ₯Έ λΈŒλžœμΉ˜μ—μ„œ 같은 νŒŒμΌμ„ μ‚­μ œν–ˆμ„ λ•Œ
β€’
μ„œλ‘œ λ‹€λ₯Έ λΈŒλžœμΉ˜μ—μ„œ 같은 μ΄λ¦„μ˜ νŒŒμΌμ„ μƒμ„±ν–ˆμ„ λ•Œ

좩돌 ν•΄κ²° 방법

1.
좩돌 확인
2.
좩돌 ν•΄κ²°
a.
확인
b.
μˆ˜μ •
c.
μŠ€ν…Œμ΄μ§•
d.
컀밋 & ν‘Έμ‹œ
e.
λ¨Έμ§€

1. 좩돌 확인

Git은 좩돌이 λ°œμƒν•œ νŒŒμΌμ„ λ‹€μŒκ³Ό 같은 ν˜•μ‹μœΌλ‘œ ν‘œμ‹œν•©λ‹ˆλ‹€:

2. 좩돌 ν•΄κ²° 단계

좩돌된 파일 확인
git status λͺ…λ Ήμ–΄λ‘œ 좩돌이 λ°œμƒν•œ νŒŒμΌλ“€μ„ ν™•μΈν•©λ‹ˆλ‹€.
μ½”λ“œ μˆ˜μ •
좩돌이 λ°œμƒν•œ 뢀뢄을 μˆ˜λ™μœΌλ‘œ νŽΈμ§‘ν•˜μ—¬ μ΅œμ’… 버전을 κ²°μ •ν•©λ‹ˆλ‹€.

ν˜„μž¬ λ³€κ²½μ‚¬ν•­μœΌλ‘œ μˆ˜μ •

λ“€μ–΄μ˜¨ λ³€κ²½ μ‚¬ν•­μœΌλ‘œ μˆ˜μ •

변경사항 μŠ€ν…Œμ΄μ§•
git add λͺ…λ Ήμ–΄λ‘œ μˆ˜μ •λœ νŒŒμΌμ„ μŠ€ν…Œμ΄μ§• μ˜μ—­μ— μΆ”κ°€ν•©λ‹ˆλ‹€.
컀밋 생성
git commit 으둜 좩돌 ν•΄κ²° λ‚΄μš©μ„ μ»€λ°‹ν•©λ‹ˆλ‹€.
λ¨Έμ§€
git merge λͺ…λ Ήμ–΄λ‘œ 좩돌 ν•΄κ²° 사항을 λ³‘ν•©ν•©λ‹ˆλ‹€.

좩돌 예방 방법

β€’
정기적인 Pull: 원격 μ €μž₯μ†Œμ˜ 변경사항을 자주 가져와 μž‘μ—…ν•˜κΈ°
β€’
μž‘μ€ λ‹¨μœ„μ˜ 컀밋: 큰 변경사항을 μž‘μ€ λ‹¨μœ„λ‘œ λ‚˜λˆ„μ–΄ μ»€λ°‹ν•˜κΈ°
β€’
브랜치 μ „λž΅: 효과적인 브랜치 관리 μ „λž΅ μˆ˜λ¦½ν•˜κΈ°

μœ μš©ν•œ Git λͺ…λ Ήμ–΄

# 좩돌 μƒνƒœ 확인 git status # 좩돌 ν•΄κ²° ν›„ μŠ€ν…Œμ΄μ§• git add <파일λͺ…> # 좩돌 ν•΄κ²° 컀밋 git commit -m "Resolve merge conflict" # 병합 쀑단 git merge --abort
Bash
볡사