Curl Up Black Cat

μ΄λ―Έμ§€μΆœμ²˜: pixabay

μ΄λ²ˆμ— μž‘μ„±ν•˜λŠ” ν¬μŠ€νŠΈλŠ” Git λ˜λŒλ¦¬κΈ°μ— κ΄€ν•œ λ‚΄μš©μž…λ‹ˆλ‹€

과거에 μΌμ–΄λ‚œ 일을 되돌릴수 μžˆλ‹€λ©΄ μ–Όλ§ˆλ‚˜ μ’‹μ„κΉŒμš”?

μ˜ν™” λ°±νˆ¬λ”ν“¨μ²˜λŠ” λ§ˆν‹΄λ°•μ‚¬κ°€ 발λͺ…ν•œ νƒ€μž„λ¨Έμ‹  이라고 λΆˆλ¦¬λŠ” μžλ™μ°¨λ₯Ό 타고 과거의 μ‹œκ°„μ—¬ν–‰μ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λ―Έμ§€μΆœμ²˜: μžμœ μ•„μ‹œμ•„λ°©μ†‘

μ•„μ§κΉŒμ§€ ν˜„μ‹€μ„Έκ³„μ—μ„œλŠ” 과거둜 μ‹œκ°„μ—¬ν–‰μ€ λΆˆκ°€λŠ₯ν•˜μ§€λ§Œ..
Git μ—μ„œλŠ” 과거둜 λŒμ•„κ°ˆ 수 있고 과거의 μΌμ–΄λ‚œ 일을 되돌릴 수 μžˆλŠ” 방법을 μ œκ³΅ν•©λ‹ˆλ‹€.

과거의 μΌμ–΄λ‚œ 일을 λ˜λŒλ¦¬λŠ” 방법이 두가지가 μžˆμŠ΅λ‹ˆλ‹€.
λ°”λ‘œ Reset κ³Ό Revert λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
Reset 은 μ‹œκ°„μ„ μ˜ˆμ „μœΌλ‘œ λ˜λŒλ¦¬λŠ” 것이고 Revert λŠ” νŠΉμ • 컀밋을 μ—†μ—ˆλ˜ 일둜 λ§Œλ“­λ‹ˆλ‹€.

1. Reset

μ•žμ—μ„œ μ„€λͺ…ν•œλŒ€λ‘œ Reset 은 μ‹œκ°„μ„ λ‹€μ‹œ λ§žμΆ”λŠ” κ²ƒμž…λ‹ˆλ‹€. λŒμ•„κ°ˆλ €λŠ” 컀밋 μ‹œμ μœΌλ‘œ λ ˆνŒŒμ§€ν† λ¦¬λŠ” μž¬μ„€μ •λ˜κ³  ν•΄λ‹Ή 컀밋 μ΄ν›„μ˜ 이λ ₯은 μ‚¬λΌμ§‘λ‹ˆλ‹€. μ•„λž˜μ™€ 같이 μ‚¬μš©ν•©λ‹ˆλ‹€.

$ git reset <μ˜΅μ…˜> <λŒμ•„κ°€κ³ μ‹Άμ€ 컀밋 ID>
# μ˜΅μ…˜μ„ 적지 μ•ŠμœΌλ©΄ mixed 둜 λ™μž‘ν•©λ‹ˆλ‹€.


μ˜΅μ…˜μ€ 3가지(hard, mixed, soft)κ°€ μžˆμŠ΅λ‹ˆλ‹€.

1) hard: λŒμ•„κ°€λ €λŠ” 이λ ₯ μ΄ν›„μ˜ λͺ¨λ“  λ³€κ²½ 이λ ₯을 μ‚­μ œ ν•©λ‹ˆλ‹€.

2) mixed: 이λ ₯을 되돌리고 이후에 λ³€κ²½λœ λ‚΄μš©μ— λŒ€ν•΄μ„œλŠ” 남아 μžˆμ§€λ§Œ μΈλ±μŠ€λŠ” μ΄ˆκΈ°ν™” λ©λ‹ˆλ‹€. 컀밋을 ν•˜λ €λ©΄ add λͺ…λ Ήμ–΄λ‘œ stage 에 λ°˜μ˜ν•˜κ³  commit ν•΄μ•Ό ν•©λ‹ˆλ‹€.

3) soft: λŒμ•„κ°€λ €λŠ” 이λ ₯으둜 λ˜λŒμ•„ κ°”μ§€λ§Œ, λ³€κ²½λ‚΄μš©μ€ stage 에 λ°˜μ˜λ˜μ–΄ μžˆλŠ” μƒνƒœμž…λ‹ˆλ‹€. λ°”λ‘œ λ‹€μ‹œ 컀밋 ν•  수 μžˆλŠ” μƒνƒœλ‘œ 남아 μžˆλŠ” κ²ƒμž…λ‹ˆλ‹€.

μœ„ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•œλ‹€κ³ ν•΄μ„œ origin 은 λ³€κ²½λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
--force μ˜΅μ…˜μ„ μ£Όμ–΄ μ΄λŸ΄λ• κ°•μ œλ‘œ λ°˜μ˜ν•΄μ•Ό ν•˜λŠ”λ°..
λ‹€λ₯Έμ‚¬λžŒλ“€κ³Ό λ ˆνŒŒμ§€ν† λ¦¬λ₯΄ κ³΅μœ ν•˜κ³  μžˆλ‹€λ©΄ 무쑰건 ν•˜λ©΄ μ•ˆλ˜λŠ” ν–‰λ™μž…λ‹ˆλ‹€.

$ git push -f origin <브랜치λͺ…>

 

2. Revert

Rever λŠ” νŠΉμ • 컀밋을 μ—†μ—ˆλ˜ 일둜 λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€. Reset κ³Ό λ‹€λ₯΄κ²Œ 컀밋을 μ‚­μ œν•˜λŠ” 것이 μ•„λ‹Œ 컀밋을 μΆ”κ°€ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.
이전 이λ ₯은 κ·ΈλŒ€λ‘œ 있고, λ˜λŒλ¦¬λ €λŠ” μ»€λ°‹λ§Œ λ˜λŒλ¦¬λŠ” λ°©μ‹μž…λ‹ˆλ‹€. μ΄μ „μ˜ 일은 κΈ°μ–΅ν•˜κ³  μžˆμ§€λ§Œ κ·Έ λ‚΄μš©μ€ μ•Œμ§€ λͺ»ν•˜λŠ” κ²ƒμ²˜λŸΌ 말이죠.
μ•„λž˜μ™€ 같이 μ‚¬μš©ν•©λ‹ˆλ‹€.

$ git revert <되돌릴 컀밋>

되돌릴 컀밋이 μ—¬λŸ¬κ°œλΌλ©΄ λ²”μœ„λ₯Ό μ£Όμ–΄μ„œ μ—¬λŸ¬κ°œλ₯Ό 선택할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
μ•„λž˜μ²˜λŸΌμš”.

$ git revert 26634dd2..78652aa2

 

좜처:&amp;nbsp;https://www.designveloper.com/

 

git으둜 κ΄€λ¦¬ν•˜κ³  싢지 μ•Šμ€ νŒŒμΌλ“€μ€ .gitignore 에 λͺ…μ‹œν•¨μœΌλ‘œμ¨ ν•΄λ‹Ή νŒŒμΌμ„ λ¬΄μ‹œν•  수 μžˆλ‹€.
ν•˜μ§€λ§Œ μ’…μ’… λ¬΄μ‹œν•  νŒŒμΌμ„ .gitignore 에 μΆ”κ°€ν•˜κΈ° 전에 git push ν•΄λ²„λ¦¬λŠ” κ²½μš°κ°€ μžˆλ‹€.
이 λ•Œ λ’€λŠ¦κ²Œ .gitignore 을 μˆ˜μ •ν•˜μ—¬ push λ₯Ό ν•˜μ§€λ§Œ 원격 μ €μž₯μ†Œμ—μ„œ ν•΄λ‹Ή νŒŒμΌμ€ 사라지지 μ•ŠλŠ”λ‹€.


Apply .gitignore
μ•„λž˜μ˜ git λͺ…령듀을 μ‹€ν–‰ν•΄μ£Όλ©΄ .gitignore의 νŒŒμΌλ“€μ΄ μ μš©λ˜μ–΄ 원격 μ €μž₯μ†Œμ—μ„œ 사라진닀.

$ git rm -rf --cached . $ git add . $ git commit -m "Apply .gitignore" $ git push


같은 μ‹€μˆ˜λ₯Ό λ°˜λ³΅ν•˜μ§€ μ•ŠκΈ° μœ„ν•œ git μ‚¬μš© μŠ΅κ΄€
쒋은 git μ‚¬μš© μŠ΅κ΄€
git commit 과정에 λŒ€ν•œ 이해와 쒋은 commit μŠ΅κ΄€μ— λŒ€ν•œ ν¬μŠ€νŠΈμ΄λ‹€.

+ Recent posts