Git - reset, revert

Hyeon WoohyeonΒ·2022λ…„ 6μ›” 11일

Git

λͺ©λ‘ 보기
4/13
post-thumbnail

feat. μ–„μ½” - μ–„μ½”λ‹˜μ˜ κ°•μ˜μ™€ 참고자료 ν™œμš©

πŸ“Œμ„œλ‘ 

ν”„λ‘œμ νŠΈμ—μ„œ 과거둜 λ˜λŒλ¦¬λŠ” 방법


1. Reset

  • λŒμ•„κ°„ μ‹œμ μ˜ λ²„μ „μœΌλ‘œ λŒμ•„κ°€λ©΄ κ·Έ μ‹œμ  μ΄ν›„μ˜ 버전듀은 νžˆμŠ€ν† λ¦¬μ—μ„œ μ§€μ›Œμ§.
  • reset은 μ•„μ˜ˆ ν˜„μž¬κ°€ μ—†μ—ˆλ˜ 것 처럼 μ›ν•˜λŠ” 과거둜 λŒμ•„κ°ˆ 수 μžˆλ‹€. 말 κ·ΈλŒ€λ‘œ '리셋'이닀.
  • reset은 이λ ₯을 남기지 μ•ŠλŠ”λ‹€. λ”°λΌμ„œ ν˜„μž¬κΉŒμ§€μ˜ commit 이λ ₯을 남기지 μ•Šκ³  μ›ν•˜λŠ” μ‹œμ μœΌλ‘œ μ™„μ „νžˆ λ˜λŒμ•„κ°€κ³  싢을 λ•Œ μ‚¬μš©ν•  수 μžˆλ‹€.

  1. Revert
  • ν˜„μž¬μ— μžˆμœΌλ©΄μ„œ 과거의 νŠΉμ • 사건(commit)λ“€λ§Œ μ—†λ˜ 일둜 λ§Œλ“ λ‹€.
  • revertλŠ” 과거둜 λŒμ•„κ°€κ² λ‹€λŠ” 이λ ₯을 남겨두고 μ›ν•˜λŠ” μ‹œμ μœΌλ‘œ λŒμ•„κ°„λ‹€. 즉, μ΄μ „μ˜ commit 내역을 남겨두고 μƒˆλ‘œμš΄ commit을 μƒμ„±ν•˜λ©΄μ„œ 과거둜 λŒμ•„κ°€κ²Œ λœλ‹€.

πŸ’‘ reset, revert μ–Έμ œ μ‚¬μš©?

ν•œ 번 κ³΅μœ κ°€ 된 μ½”λ“œλ“€μ„ λ‹€λ₯Έ μ‚¬λžŒμ΄ μž‘μ—…ν•˜κ³  μžˆμ„ λ•Œ, reset을 ν•˜κ²Œλ˜λ©΄ λ¬Έμ œκ°€ λ°œμƒν•¨.
λ”°λΌμ„œ 이런 κ²½μš°μ— 이전 μ»€λ°‹μ˜ μˆ˜μ •μ΄ ν•„μš”ν•  λ•Œ, revertλ₯Ό μ‚¬μš©ν•¨.

πŸ“Œ ν˜„μž¬ νžˆμŠ€ν† λ¦¬

  • ν˜„ μ‹œμ  컀밋 λ©”μ‹œμ§€ : "Replace Cheetas with Panthers" (ν˜„μ‹œμ )
    ν˜„μž¬ λ§ˆμ§€λ§‰ 컀밋 λ‚΄μš©μ΄ cheetas.yaml νŒŒμΌμ„ μ‚­μ œν•˜κ³  panthers.yaml 을 μΆ”κ°€,
    Web.yaml 의 manager λ₯Ό Me μ—μ„œ Nora둜 μˆ˜μ •ν•œ 내역이 μžˆλ‹€.
  • λ°”λ‘œ μ΄μ „μ‹œμ  컀밋 λ©”μ‹œμ§€ : "Add team Cheetas" (λ°”λ‘œ 이전)
    cheetas.yaml 파일이 μ‚΄μ•„μžˆμŒ.

πŸ“Œ reset μ‚¬μš©ν•΄λ³΄κΈ°

πŸ’» ν„°λ―Έλ„μ—μ„œ μ‚¬μš©

git reset --hard (λŒμ•„κ°ˆ 컀밋 ν•΄μ‹œ)
  • ν•΄μ‹œκ°€ μ—†μœΌλ©΄ λ§ˆμ§€λ§‰ 컀밋을 κ°€λ₯΄ν‚΄
  • git log둜 ν•΄μ‹œ 확인
  • "Replace Cheetas with Panthers"κ°€ 사라지며 ν˜„μž¬
    "Add team Cheetas" 버전 μƒνƒœμΈ 것을 μ•Œ 수 μžˆλ‹€.

  • "FIRST COMMIT"으둜 λŒμ•„κ°„ ν›„ log 확인해보기

  • 이 ν›„μ˜ 컀밋 λ‚΄μš©μ΄ λͺ¨λ‘ μ§€μ›Œμ§€λ©΄μ„œ 첫번째 μ»€λ°‹μœΌλ‘œ λŒμ•„κ°„ 것을 확인할 수 μžˆλ‹€.

πŸ“Œ revert μ‚¬μš©ν•΄λ³΄κΈ°

πŸ’» ν„°λ―Έλ„μ—μ„œ μ‚¬μš©

git revert (되돌릴 컀밋 ν•΄μ‹œ)
  • μ·¨μ†Œν•  μ»€λ°‹μ˜ ν•΄μ‹œλ₯Ό μ°Ύμ•„μ„œ μˆ˜μ •
  • ν˜„μž¬ μƒνƒœ "Replace Cheetas with Panthers" μ—μ„œ "Add George to iOS" 의 μ‹œμ μœΌλ‘œ 되돌렀 보기
  • μ½”λ“œμ™€ νŒŒμΌλ“€μ΄ "Add George to iOS"의 μ‹œμ κ³Ό λ™μΌν•˜κ³ , νžˆμŠ€ν† λ¦¬μ—λŠ”
    μƒˆλ‘œμš΄ 컀밋이 μƒμ„±λ˜μ–΄ 있음

πŸ’‘ 이미 κ³΅μœ κ°€ λœκ²ƒλ“€μ— ν•œν•΄μ„œ ν˜‘μ—…μ‹œμ—λŠ” revertκ°€ μžμ£Όμ“°μž„.

πŸ’» commit ν•˜μ§€ μ•Šκ³  revert ν•˜κΈ°

git revert --no commit (되돌릴 컀밋 ν•΄μ‹œ)
  • "Add George to iOS"둜 no commit revert

    이 μ‹œμ μ˜ 바뀐 μƒνƒœκ°€ add 만 λ˜μ–΄ μžˆλŠ” μƒνƒœ (commit ❌)

πŸ“Œ SourceTree μ—μ„œ μ‚¬μš©ν•΄λ³΄κΈ°

1. 변경사항 λ§Œλ“€κ³  μ»€λ°‹ν•˜κΈ°

  • Web.yaml μ‚­μ œ

  • .gitignore 에 *.config μΆ”κ°€

  • hello.txt μΆ”κ°€

    ν•˜λ‹¨μ˜ 변경사항에 체크 ν‘œμ‹œλ₯Ό ν•˜κ²Œλ˜λ©΄ git addλ₯Ό ν•œ κ²ƒμž„

  • 컀밋 λ©”μ‹œμ§€: Commit with SourceTree

2. revert

  • Add George to iOS의 μˆ˜μ •μ‚¬ν•­ 되돌렀보기
  • ν•΄λ‹Ή 컀밋에 마우슀 우클릭 - 컀밋 되돌리기

3. reset

  • Replace Cheetas with Panthers μ‹œμ μœΌλ‘œ 되돌렀보기
  • ν•΄λ‹Ή 컀밋에 마우슀 우클릭 - masterλ₯Ό 이 μ»€λ°‹μœΌλ‘œ μ΄ˆκΈ°ν™”
  • μ„ νƒμ§€μ—μ„œ Hard 선택

0개의 λŒ“κΈ€