πŸ’£ "git revert"κ°€ λ˜μ§€ μ•Šμ•˜λ˜ 이유

thumb_hyeokΒ·2022λ…„ 8μ›” 10일
0

πŸ”— GIt & Github

λͺ©λ‘ 보기
1/1

🀬 문제 상황

였늘 νŒ€ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ‹€κ°€ PR을 보내렀고 λ‚΄κ°€ μž‘μ—…ν•˜λŠ”λ™μ•ˆ λ³€κ²½λœ 사항듀을 λ°˜μ˜ν•˜κΈ° μœ„ν•΄ develop λΈŒλžœμΉ˜μ—μ„œ pull을 λ°›μ•„μ™€μ„œ μž‘μ—…ν•˜λ˜ λΈŒλžœμΉ˜μ— mergeλ₯Ό ν•˜κ³  있던 쀑에 무슨 μ‹€μˆ˜λ₯Ό ν•œ 것인지 λ¨Ό 과거의 컀밋 ν•˜λ‚˜κ°€ λ§ˆμ§€λ§‰ 머지 μ»€λ°‹μœΌλ‘œ λΆ™μ–΄ 버렸닀.

μ½”λ“œλ₯Ό λ³΄λ‹ˆ ν”„λ‘ νŠΈ 변동사항은 λͺ¨λ‘ 반영이 λ˜μ–΄μžˆμ—ˆμ§€λ§Œ, λ°±μ—”λ“œ μ½”λ“œλŠ” 이틀 μ „ API λͺ…μ„Έ λ³€κ²½ 이전 μ½”λ“œμž„μ„ ν™•μΈν•˜κ³  git reset μ΄λ‚˜ git revert λ₯Ό μ‚¬μš©ν•˜κ³ μž ν–ˆλ‹€. μ•„λ¬΄λž˜λ„ νŒ€ ν”„λ‘œμ νŠΈμ΄κΈ°λ„ ν•˜κ³ , λ§ˆμ§€λ§‰ 컀밋에 μ€‘μš”ν•œ 사항듀이 λ§Žμ•„ μ•ˆμ „ν•œ λ°©ν–₯으둜 κ°€κΈ° μœ„ν•΄ git revert λ₯Ό μ¨μ•Όκ² λ‹€λŠ” 생각이 λ“€μ—ˆλ‹€.


πŸ“Œ git revert

VSCodeλ₯Ό 켜고 되돌릴 μ»€λ°‹λ²ˆν˜Έλ₯Ό 볡사해 λ‹Ήλ‹Ήν•˜κ²Œ μ•„λž˜μ²˜λŸΌ μž…λ ₯ν–ˆμ§€λ§Œ!

git revert d658020

error: d658020 is a merge but no -m option was given. 
fatal: revert failed

μ—λŸ¬κ°€ λ°œμƒν–ˆλ‹€.
μœ„μ™€ 같은 μ—λŸ¬κ°€ λ°œμƒν•˜λŠ” μ΄μœ λŠ” 병합 컀밋을 되돌릴 λŒ€μƒμ„ μ •ν™•νžˆ 지정을 해주지 μ•Šμ•„μ„œμ˜€λ‹€!


πŸ’‘ 해결법

git cat-file -p d658020

리포지토리 κ°œμ²΄μ— λŒ€ν•œ μ½˜ν…μΈ  λ˜λŠ” μœ ν˜• 및 크기 정보 μ œκ³΅μ„ ν•΄μ£ΌλŠ” cat-file λͺ…λ Ήμ–΄λ₯Ό 톡해 ν•΄λ‹Ή 병합 컀밋에 λŒ€ν•œ 정보λ₯Ό μ‚΄νŽ΄λ³΄λ©΄ μ•„λž˜μ™€ 같이 두 개의 parentκ°€ μ‘΄μž¬ν•˜λŠ” 것을 확인할 수 μžˆλ‹€.

λΆ€λͺ¨μ˜ μ»€λ°‹λ²ˆν˜Έλ₯Ό λ³΄λ‹ˆ 첫번째 λΆ€λͺ¨κ°€ λ‚΄κ°€ 되돌리렀고 ν•œ μœ„μΉ˜μ˜ μ»€λ°‹μž„μ„ 확인할 수 μžˆμ—ˆλ‹€.

git revert d658020 -m 1

이λ₯Ό 톡해 λ‹€μ‹œ 컀밋을 되돌렀 과거둜 λŒμ•„κ°ˆ 수 μžˆμ—ˆλ‹€!


πŸ”– μ°Έκ³  사항

profile
μš°μ•„ν•œν…Œν¬μ½”μŠ€ 4κΈ° μ›Ή ν”„λ‘ νŠΈμ—”λ“œ

0개의 λŒ“κΈ€