Git - gksrlfw/study GitHub Wiki

Git

기초

upstream μ΄λž€

μ–΄λŠ 두 μ €μž₯μ†Œμ— λŒ€ν•œ 관계λ₯Ό ν‘œν˜„ν•˜λŠ” μš©μ–΄μž…λ‹ˆλ‹€. push 와 pull 을 κΈ°μ€€μœΌλ‘œ A μ—μ„œ B 둜 push ν•œλ‹€λ©΄ B κ°€ upstream 이 λ©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ B 의 μ €μž₯μ†Œλ₯Ό fork ν–ˆλ‹€λ©΄, B 의 μ €μž₯μ†Œκ°€ upstream 이 λ©λ‹ˆλ‹€. (ν™•μΈν•„μš”) 만일 원격저μž₯μ†Œμ™€ λ‘œμ»¬μ €μž₯μ†Œμ˜ κ΄€κ³„μ—μ„œλŠ” 원격저μž₯μ†Œκ°€ upstream μž…λ‹ˆλ‹€.

보톡 λ‘œμ»¬μ €μž₯μ†Œμ—μ„œ branch λ₯Ό μƒμ„±ν•˜κ³  μ—¬κΈ°μ„œ μž‘μ—…ν•œ 컀밋을 원격저μž₯μ†Œμ— push ν•  λ•Œ, μ–΄λŠ μ €μž₯μ†Œλ‘œ push 해야될지 λͺ¨λ₯΄λ―€λ‘œ μ•„λž˜μ™€ 같이 μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€.

git push origin feature/-

ν•˜μ§€λ§Œ upstream 을 미리 μ μš©ν•΄μ£Όλ©΄ μ•„λž˜μ²˜λŸΌ push λͺ…λ Ήλ§Œ ν•΄μ£Όλ©΄ λ©λ‹ˆλ‹€.

git push

μ„€μ •ν•˜λŠ” 방법은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

  1. default 둜 ν˜„μž¬ 브랜치 이름을 upstream 으둜 μ§€μ •ν•©λ‹ˆλ‹€.
git config --global push.default current

current 이외에 μ—¬λŸ¬ 섀정이 μžˆμŠ΅λ‹ˆλ‹€. ν•„μš”ν•˜λ©΄ ν™•μΈν•©μ‹œλ‹€.

  1. 직접 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
git branch --set-upstream-to=origin/<branch> <local branch>

Git flow

Git flow λͺ…λ Ή

git flow λŠ” 브랜치λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” κ·œμΉ™μž…λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” git flow 의 κ°œλ…μ΄ μ•„λ‹Œ, git μ—μ„œ μ œκ³΅ν•˜λŠ” git flow κΈ°λŠ₯ 쀑 release 의 λ™μž‘μ— λŒ€ν•΄ μž‘μ„±ν•©λ‹ˆλ‹€.

  1. git flow release start dev λΈŒλžœμΉ˜μ—μ„œ release 브랜치λ₯Ό λ§Œλ“€λ‘œ checkout ν•©λ‹ˆλ‹€.
  2. κ°œλ°œμžλŠ” release λΈŒλžœμΉ˜μ—μ„œ μ›ν•˜λŠ” μž‘μ—…μ„ μ§„ν–‰ν•©λ‹ˆλ‹€. (ex. version update)
  3. git flow release finish release 브랜치λ₯Ό main 에 merge ν•©λ‹ˆλ‹€. 그리고 tag release- 을 λ§Œλ“€κ³  dev 에 merge ν•©λ‹ˆλ‹€. release λΈŒλžœμΉ˜λŠ” μ‚­μ œλ˜κ³  dev 둜 checkout ν•©λ‹ˆλ‹€.

μ΄ν›„μ—λŠ” main, dev λ ˆν¬μ§€ν† λ¦¬μ— push ν•˜κ³ , tag λ₯Ό push ν•˜μ—¬ production 에 배포할 수 μžˆμŠ΅λ‹ˆλ‹€.

git μ—μ„œ tag λŠ” νŠΉμ • 컀밋에 λŒ€ν•œ 또 λ‹€λ₯Έ μ΄λ¦„μž…λ‹ˆλ‹€. 컀밋은 checkout ν•˜μ—¬ λ‚΄μš©μ„ μˆ˜μ •ν•  수 μžˆμ§€λ§Œ tag λŠ” μˆ˜μ •λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€. λͺ©μ μ΄ μ •ν•΄μ Έμžˆμ§€λŠ” μ•Šμ§€λ§Œ 보톡 버전을 release ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. μ œν’ˆ 1.0 이 릴리즈 될 λ•Œ νƒœκΉ…μ„ ν•©λ‹ˆλ‹€. 이후, 1.1 버전을 κ°œλ°œν•  λ•ŒλŠ” μ»€λ°‹μœΌλ‘œλ§Œ κ΄€λ¦¬ν•˜λ‹€κ°€ 1.1 이 μ™„μ„±λ˜λ©΄ λ‹€μ‹œ νƒœκΉ…ν•˜κ³  λ¦΄λ¦¬μ¦ˆν•©λ‹ˆλ‹€.

⚠️ **GitHub.com Fallback** ⚠️