πŸ“νŒ€ν”„λ‘œμ νŠΈλ₯Ό ν•˜λ©΄μ„œ κ²ͺ은 Git & GitHub 였λ₯˜ν•΄κ²°λ²•

10_2pangΒ·2023λ…„ 6μ›” 5일
0

βš½οΈνŠΈλŸ¬λΈ”μŠˆνŒ…

λͺ©λ‘ 보기
31/94
post-thumbnail

πŸ‘¨β€πŸ’»Β μ‚¬κ±΄


  • νŒ€ν”„λ‘œμ νŠΈ 쀑 처음 Git&GitHub λ₯Ό 본격적으둜 λ‹€λ£¨λ‹€λ³΄λ‹ˆ, μ—¬λŸ¬ 였λ₯˜μƒν™©μ— μ²˜ν•˜μ˜€λ‹€.

βœ…Β ν•΄κ²°


  • 원격저μž₯μ†Œ 이름을 μ–ΈκΈ‰ν•΄μ£Όμ§€ μ•Šμ•„μ„œ, 이λ₯Ό λͺ…μ‹œν•΄λ‹¬λΌλŠ” μ—λŸ¬
    fatal: The upstream branch of your current branch does not match
    the name of your current branch.  To push to the upstream branch
    on the remote, use
    
        git push origin HEAD:develop
    
    To push to the branch of the same name on the remote, use
    
        git push origin HEAD
    
    To choose either option permanently, see push.default in 'git help config'.
    
    To avoid automatically configuring upstream branches when their name
    doesn't match the local branch, see option 'simple' of branch.autoSetupMerge
    in 'git help config'.
    μ΄λ ‡κ²Œ λœ¬λ‹€λ©΄, μœ„μ— λ‚˜μ™€μžˆλŠ” μ½”λ“œ ( git push origin HEAD… ) λ₯Ό μ‚¬μš©ν•˜μ§€ 말고, git push --set-upstream origin 브랜치λͺ… 을 μ‚¬μš©ν•œλ‹€. μœ„μ— 처럼 ν•˜λ©΄ μš°λ¦¬κ°€ μ„€μ •ν•œ default 둜 λ°”λ‘œ 푸쉬가 λ˜μ–΄λ²„λ¦°λ‹€β€¦
  • 잘 λͺ» ν‘Έμ‰¬ν•œ λ‚΄μš© μ‚­μ œ ν˜Ήμ€ 되돌리기
    1. git log λ₯Ό ν†΅ν•˜μ—¬, λŒμ•„κ°€κ³  싢은 μ‹œμ μ˜ commit id λ₯Ό 확인후에 λ³΅μ‚¬ν•œλ‹€.

    2. μ‹œμ μ„ λ˜λŒλ¦°λ‹€.

      git reset --hard [λ³΅μ‚¬ν•œ_컀밋_id]

      hard λͺ…λ Ήμ–΄λ₯Ό ν†΅ν•˜μ—¬ λŒμ•„κ°€κ³  싢은 μ‹œμ μ˜ commit 이후λ₯Ό λͺ¨λ‘ μ§€μš°κ²Œν•˜λŠ” λͺ…령어이닀.

    3. 원격 μ €μž₯μ†Œμ— μ‹œμ  λŒλ¦°κ²ƒμ„ λ°˜μ˜ν•œλ‹€.

      git push origin [브랜치λͺ…]

      β€ΌοΈΒ ν˜Ήμ‹œ μœ„μ˜ λͺ…λ Ήμ–΄κ°€ λ¨Ήμ§€ μ•ŠλŠ”λ‹€λ©΄, git push -f oirign [브랜치λͺ…] 을 μ‚¬μš©ν•œλ‹€. κ·ΈλŸ¬λ‚˜ -f λŠ” κ°•μ œν•˜λŠ” 속성이기 λ•Œλ¬Έμ— μ•„μ£Όμ•„μ£Ό μ‘°μ‹¬νžˆ μ‚¬μš©ν•œλ‹€.

  • 컀밋 λ‚΄μš© μˆ˜μ •ν•˜κΈ°
    1. push ν•œ 컀밋 λ©”μ‹œμ§€ 쀑 λ³€κ²½ν•˜κ³  싢은 컀밋을 ν™•μΈν•œλ‹€.

      git rebase HEAD~N -i (N 은 μ΅œκ·Όμˆœμ„œλΆ€ν„° λͺ‡λ²ˆμ§ΈμΈμ§€λ₯Ό μ„Έμ•„λ €μ„œ N에 μ§‘μ–΄λ„£λŠ”λ‹€. )

    2. μ—λ””ν„°μ—μ„œ pick을 reword둜 λ³€κ²½ν•œλ‹€.

      i둜 μž…λ ₯λͺ¨λ“œμ— λ“€μ–΄κ°„ ν›„ 맨 μ•žμ˜ 'pick' -> 'reword' λ³€κ²½ ν›„, esc -> :wq! -> enter

    3. Commit Message μˆ˜μ •

      i둜 μž…λ ₯λͺ¨λ“œμ— λ“€μ–΄κ°€ 꼼꼼히 ν™•μΈν•˜κ³  μˆ˜μ •ν•œ λ’€, 3λ²ˆμ—μ„œμ²˜λŸΌ esc -> :wq! -> enter둜 λΉ μ Έλ‚˜μ˜¨λ‹€.

    4. ν‘Έμ‹œ ( μžμ‹ μ˜ 브랜치λ₯Ό μž˜ν™•μΈν•˜μ—¬ push ν•œλ‹€. )

      git push origin [피쳐_브랜치λͺ…]

      이 μ•ˆλœλ‹€λ©΄, git push -f origin [피쳐_브랜치λͺ…] ! 그런데 이것도 μ•ˆλœλ‹€λ©΄, λΈŒλžœμΉ˜κ°€ λ³΄ν˜Έλ°›κ³  μžˆμ„ν…Œλ‹ˆ 이λ₯Ό ν•΄μ œν•΄μ€€λ‹€. ( 잘 νŒλ‹¨ν•˜μ—¬ ν•œλ‹€. )

  • 브랜치λͺ…을 λ³€κ²½ν•˜κ³  싢을 λ•Œ
    1. 둜컬 브랜치 이름 λ³€κ²½ν•˜κΈ°

      git branch -m [OLD_BRANCH] [NEW_BRANCH]

    2. pushκΉŒμ§€ ν–ˆμ„κ²½μš°, 원격 브랜치 이름 λ³€κ²½ν•˜κΈ° ( 원격 μ €μž₯μ†Œμ— 이미 push λ₯Ό ν–ˆλ‹€λ©΄, 원격도 λ°”κΎΈμ–΄ μ€˜μ•Όν•œλ‹€. )

      git push origin :old_branch new_branch

πŸ’­Β κ°œμ„ 


제발 정신차리고 Git을 μ‚¬μš©ν•˜μž!!!! 식은땀이 λ„ˆλ¬΄λ‚œλ‹€β€¦

profile
μ£Όλ‹ˆμ–΄ ν”„λ‘ νŠΈμ—”λ“œ 개발자 이광렬 μž…λ‹ˆλ‹€ 🌸

0개의 λŒ“κΈ€