Gitflow: --no-ff 병합을 μˆ˜ν–‰ν•˜μ§€ μ•ŠλŠ” κΈ°λŠ₯ 마무리

에 λ§Œλ“  2011λ…„ 02μ›” 14일  Β·  12μ½”λ©˜νŠΈ  Β·  좜처: nvie/gitflow

"성곡적인 Git λΆ„κΈ° λͺ¨λΈ" 기사에 λ‚˜μ™€ μžˆλŠ” μ›Œν¬ν”Œλ‘œμ— κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. μ €λŠ” 특히 κΈ°λŠ₯ 병합을 μœ„ν•΄ 컀밋 개체λ₯Ό μ‚¬μš©ν•˜λŠ” 것을 μ’‹μ•„ν•©λ‹ˆλ‹€.

방금 git-flow κ°€ --no-ff 병합을 μ‚¬μš©ν•  수 μžˆλ‹€λŠ” 것을 μ•Œμ•„μ°¨λ ΈμŠ΅λ‹ˆλ‹€. μ™œ μ΄λŸ°κ±°μ•Ό? μ„€κ³„μƒμΈκ°€μš”?

--no-ff κΈ°λŠ₯ 병합과 ν•¨κ»˜ μž‘λ™ν•˜λ €λ©΄ git-flowλ₯Ό λΆ„κΈ°ν•΄μ•Ό ν•©λ‹ˆκΉŒ, μ•„λ‹ˆλ©΄ ꡬ성할 수 μžˆλŠ” 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

감사 ν•΄μš”,
슀콧

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…• λΉˆμ„ΌνŠΈ,

λ‚˜λŠ” κ·Έ λ””μžμΈ 뒀에 μˆ¨μ€ 생각을 ν™•μ‹€νžˆ 이해할 수 μžˆμ§€λ§Œ 병합 컀밋을 생성할지 μ—¬λΆ€λŠ” μ‚¬μš©μžκ°€ κΈ°λŠ₯ λΆ„κΈ°λ₯Ό μ‹œμž‘ν•˜λ„λ‘ μ„ νƒν•˜λŠ”μ§€ 여뢀에 따라 κ²°μ •λ˜μ–΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ•Œλ‘œλŠ” 개발 λΈŒλžœμΉ˜μ—μ„œ λΉ λ₯Έ 변경을 μˆ˜ν–‰ν•  수 μžˆμ§€λ§Œ 병합 컀밋을 보고 μ‹ΆκΈ° λ•Œλ¬Έμ— _νŠΉμ •ν•˜κ²Œ_ κΈ°λŠ₯ 브랜치λ₯Ό μƒμ„±ν•˜κΈ°λ‘œ μ„ νƒν•©λ‹ˆλ‹€. κΈ°λŠ₯ 뢄기에 λŒ€ν•œ 컀밋은 ν•˜λ‚˜λ§Œ λ§Œλ“€ 수 μžˆμ§€λ§Œ λͺ…μ‹œμ  병합 컀밋을 λ¬΄μ‹œν•  만큼 μ€‘μš”ν•˜μ§€ μ•Šλ‹€κ³  μ‚¬μš©μžκ°€ μƒκ°ν•˜λŠ” 것은 아닐 수 μžˆμŠ΅λ‹ˆλ‹€.

κ²°κ΅­ 선택은 μ‚¬μš©μžμ˜ λͺ«μ΄λΌκ³  μƒκ°ν•˜κ³ , 개발자 λΈŒλžœμΉ˜μ— λΉ λ₯΄κ²Œ μ»€λ°‹ν•˜λŠ” 것과 κΈ°λŠ₯ 브랜치λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μžκ°€ λ‹€λ₯Έ 선택을 ν•˜κ³  μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

개인 ν˜•μ‹μœΌλ‘œ 이 변경을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ μ½”λ“œ κΈ°λ°˜μ—μ„œ μ–΄λ””λ‘œ κ°€μ•Ό ν•˜λŠ”μ§€μ— λŒ€ν•œ λͺ¨λ“  ν¬μΈν„°λŠ” 맀우 감사할 κ²ƒμž…λ‹ˆλ‹€!

ν›Œλ₯­ν•œ 도ꡬ에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€!
- 슀콧

λͺ¨λ“  12 λŒ“κΈ€

μ•ˆλ…• 슀콧,

μ˜λ„μ μœΌλ‘œ git-flowλŠ” 컀밋이 μ—­μ‚¬μ μœΌλ‘œ ν•¨κ»˜ μ†ν•œλ‹€λŠ” 것을 κΈ°λ‘ν•˜κΈ° μœ„ν•΄ 병합할 λ•Œ --no-ff μ˜΅μ…˜μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ κΈ°λŠ₯ 뢄기에 단일 μ»€λ°‹λ§Œ ν¬ν•¨λœ 경우 μΆ”κ°€ 병합 컀밋은 아무 것도 μΆ”κ°€ν•˜μ§€ μ•Šκ³  λΆˆν•„μš”ν•˜κ²Œ λΆ„κΈ° 트리λ₯Ό λ³΅μž‘ν•˜κ²Œ λ§Œλ“­λ‹ˆλ‹€. λ”°λΌμ„œ 단일 컀밋 λΆ„κΈ°μ˜ 경우 컀밋이 develop 직접 μˆ˜ν–‰λœ κ²ƒμ²˜λŸΌ 빨리 감기 병합이 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

건배,
λΉˆμ„ΌνŠΈ

μ•ˆλ…• λΉˆμ„ΌνŠΈ,

λ‚˜λŠ” κ·Έ λ””μžμΈ 뒀에 μˆ¨μ€ 생각을 ν™•μ‹€νžˆ 이해할 수 μžˆμ§€λ§Œ 병합 컀밋을 생성할지 μ—¬λΆ€λŠ” μ‚¬μš©μžκ°€ κΈ°λŠ₯ λΆ„κΈ°λ₯Ό μ‹œμž‘ν•˜λ„λ‘ μ„ νƒν•˜λŠ”μ§€ 여뢀에 따라 κ²°μ •λ˜μ–΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ•Œλ‘œλŠ” 개발 λΈŒλžœμΉ˜μ—μ„œ λΉ λ₯Έ 변경을 μˆ˜ν–‰ν•  수 μžˆμ§€λ§Œ 병합 컀밋을 보고 μ‹ΆκΈ° λ•Œλ¬Έμ— _νŠΉμ •ν•˜κ²Œ_ κΈ°λŠ₯ 브랜치λ₯Ό μƒμ„±ν•˜κΈ°λ‘œ μ„ νƒν•©λ‹ˆλ‹€. κΈ°λŠ₯ 뢄기에 λŒ€ν•œ 컀밋은 ν•˜λ‚˜λ§Œ λ§Œλ“€ 수 μžˆμ§€λ§Œ λͺ…μ‹œμ  병합 컀밋을 λ¬΄μ‹œν•  만큼 μ€‘μš”ν•˜μ§€ μ•Šλ‹€κ³  μ‚¬μš©μžκ°€ μƒκ°ν•˜λŠ” 것은 아닐 수 μžˆμŠ΅λ‹ˆλ‹€.

κ²°κ΅­ 선택은 μ‚¬μš©μžμ˜ λͺ«μ΄λΌκ³  μƒκ°ν•˜κ³ , 개발자 λΈŒλžœμΉ˜μ— λΉ λ₯΄κ²Œ μ»€λ°‹ν•˜λŠ” 것과 κΈ°λŠ₯ 브랜치λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μžκ°€ λ‹€λ₯Έ 선택을 ν•˜κ³  μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

개인 ν˜•μ‹μœΌλ‘œ 이 변경을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ μ½”λ“œ κΈ°λ°˜μ—μ„œ μ–΄λ””λ‘œ κ°€μ•Ό ν•˜λŠ”μ§€μ— λŒ€ν•œ λͺ¨λ“  ν¬μΈν„°λŠ” 맀우 감사할 κ²ƒμž…λ‹ˆλ‹€!

ν›Œλ₯­ν•œ 도ꡬ에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€!
- 슀콧

λ§ˆλ²•μ΄ μΌμ–΄λ‚˜λŠ” κ³³: https://github.com/nvie/gitflow/blob/develop/git-flow-feature#L310

단일 컀밋 κΈ°λŠ₯ λΆ„κΈ°λ₯Ό --no-ff와 λͺ…μ‹œμ μœΌλ‘œ λ³‘ν•©ν•˜λŠ” μ˜΅μ…˜μ„ μΆ”κ°€ν•˜μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€. μ—¬μ „νžˆ (λ‹€λ₯Έ λͺ…령쀄 ν”Œλž˜κ·Έμ˜ λ³΅μž‘μ„±μ΄ μΆ”κ°€λ˜λŠ” 것 μ™Έμ—λŠ”) 아무것도 μΆ”κ°€ν•˜μ§€ μ•ŠλŠ”λ‹€κ³  μƒκ°ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. 당신이 그것을 μ£Όμž₯ν•œλ‹€λ©΄ 그것을 사적인 λ³€κ²½μœΌλ‘œ 자유둭게 λ§Œλ“œμ‹­μ‹œμ˜€.

건배,
λΉˆμ„ΌνŠΈ

κ³ λ§ˆμ›Œ, λΉˆμ„ΌνŠΈ! 포인터λ₯Ό μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

μ΅œμƒμ˜,
슀콧

5μ„ΌνŠΈλ₯Ό λ”ν•˜λ©΄

ν•˜λ‚˜μ˜ 컀밋 κΈ°λŠ₯을 μ™„λ£Œν•  λ•Œμ—λ„ 병합 컀밋을 κ°–λŠ” μ˜΅μ…˜μ„ 맀우 μ›ν•©λ‹ˆλ‹€.

λ‚΄κ°€ git flowλ₯Ό μ‚¬μš©ν•˜λŠ” λ°©μ‹μ—μ„œ λ‚΄ κΈ°λŠ₯μ—λŠ” λ‚΄κ°€ μž‘μ—… 쀑인 ν‹°μΌ“ λ²ˆν˜Έκ°€ 이름에 ν¬ν•¨λ©λ‹ˆλ‹€. κΈ°λŠ₯을 마치면 κΈ°λŠ₯ 이름(ν‹°μΌ“ 번호 포함)을 μ§€μ •ν•˜λŠ” 병합 컀밋을 보고 μ‹ΆμŠ΅λ‹ˆλ‹€.

이것은 λͺ¨λ“  컀밋 λ©”μ‹œμ§€μ— ν‹°μΌ“ 번호λ₯Ό 쓰지 μ•Šκ³ λ„ μ‹€μ œ 티켓에 λŒ€ν•œ λͺ¨λ“  컀밋을 μ—­μΆ”μ ν•˜λŠ” 데 μœ μš©ν•©λ‹ˆλ‹€.

@DonGiulio 이미 ν™•μΈν–ˆλŠ”μ§€ λͺ¨λ₯΄κ² μ§€λ§Œ AVH μ—λ””μ…˜μ΄ μ›ν•˜λŠ” λŒ€λ‘œ μž‘λ™ν•œλ‹€κ³  ν™•μ‹ ν•©λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€ λͺ°λžλ„€μš” ν™•μΈν•΄λ΄μ•Όκ² λ„€μš”

λ˜ν•œ 단일 컀밋 μ—†μŒ λ™μž‘μ„ μˆ˜ν–‰ν•˜λŠ” μ˜΅μ…˜μ„ μΆ”κ°€ν•˜λŠ” 방법도 μ„ νƒν–ˆμŠ΅λ‹ˆλ‹€. 이것을 λ‹€μ‹œ 생각해 λ³Ό 수 μžˆλ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€.

(AVH νŒμ— λ‹€λ₯Έ 것이 μžˆλŠ”μ§€ 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€).

@nvie λ‚΄κ°€ μ™œ
μ‚¬λžŒλ“€μ˜ 무리가 μΆ”κ°€ 무언가λ₯Ό μƒκ°ν•˜λ©΄ μ†”μ§νžˆ μƒκ°ν•˜κ³  μΌλΆ€λŠ” μš°λ¦¬κ°€ μ–΄λ”˜κ°€μ— λ˜λŠ” μ‚¬λžŒλ“€μ΄ μ‹œν–‰ 착였λ₯Ό 찾을 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€ 그것 λ•Œλ¬Έμ— 적어도 λ¬Έμ„œμ—μ„œμ΄ μ˜΅μ…˜μ„ μΆ”κ°€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ μƒκ°ν•©λ‹ˆλ‹€. 이것은 κ·Έλ ‡κ²Œ 큰 결정을 내릴 수 μ—†μŠ΅λ‹ˆλ‹€!

μ‚¬μš©μžκ°€ κΈ°λŠ₯을 λ§Œλ“œλŠ” 데 어렀움을 κ²ͺκ³  단일 컀밋을 μˆ˜ν–‰ν•˜κΈ°λ‘œ μ„ νƒν•œ 경우, μ΄λŠ” ν•΄λ‹Ή κΈ°λŠ₯이 그런 μ‹μœΌλ‘œ(예: μ‹œκ°μ  기둝 μœ μ§€λ₯Ό μœ„ν•΄) κ°œλ°œμ— 직접 ν‘Έμ‹œν•˜μ§€ μ•Šμ•„μ•Ό 함을 μ˜λ―Έν•©λ‹ˆλ‹€. . λ‚˜λŠ” λ°˜λŒ€λ‘œ μ£Όμž₯ν•˜κ³  μ‚¬μš©μžκ°€ μ„ νƒν•œ 경둜λ₯Ό λ¬΄μ‹œν•˜λŠ” 것은 μ΄μΉ˜μ— λ§žμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μžμ„Ένžˆ μ„€λͺ…ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? μš°λ¦¬λŠ” λͺ¨λ“  μ‚¬λžŒμ΄ κ·ΈλŸ¬ν•œ μ‚¬μ†Œν•œ λ³€κ²½μœΌλ‘œ 인해 κ·ΈλŸ¬ν•œ κ²¬κ³ ν•œ μž‘ν’ˆμ„ λΆ„κΈ°ν•˜κ³  μ‹Άμ–΄ν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆλ‹€λŠ” 점에 λ™μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

@Mehradzie 5λ…„ λ™μ•ˆ 이 μ €μž₯μ†Œμ— λŒ€ν•œ 컀밋이 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. AVH μ—λ””μ…˜μ€ μ–Όλ§ˆ λ™μ•ˆ κ³„μ†ν•΄μ„œ μ‚¬μš©λ˜μ–΄ μ™”μœΌλ©° μƒλ‹Ήνžˆ μ•ˆμ •μ μž…λ‹ˆλ‹€. λ‚˜λŠ” μ—¬κΈ°μ„œ 응닡을 μœ„ν•΄ μˆ¨μ„ 참지 μ•Šμ„ 것이며, μ½”λ“œ 변경은 훨씬 더 μ μŠ΅λ‹ˆλ‹€.

@jawshooah μ†”μ§νžˆ λ§ν•΄μ„œ SourceTreeμ—μ„œ 같은 문제λ₯Ό μ«“κ³  μžˆμ—ˆκΈ° λ•Œλ¬Έμ— μ—¬κΈ°κΉŒμ§€ 왔을 λ•Œ repo 이름을 ν™•μΈν•˜μ§€λ„ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.
gitflowλŠ” SourceTreeκ°€ 흐름을 μˆ˜ν–‰ν•˜λŠ” 데 μ‚¬μš©ν•©λ‹ˆκΉŒ? μ§€κΈˆ μ’€ ν—·κ°ˆλ¦¬λ„€μš” :D
κ·Έλ ‡λ‹€λ©΄ λ‹€λ₯Έ repos의 μž‘μ—…μ„ λŒ€μ‹  μ‚¬μš©ν•˜λ„λ‘ μ œμ•ˆν•œλŒ€λ‘œ 자λ₯΄κ³  λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

@Mehradzie AFAIK SourceTreeλŠ” 원본 nvie λ²„μ „μ˜ μ•½κ°„ μˆ˜μ •λœ 버전을 ν¬ν•¨ν•©λ‹ˆλ‹€. AVH λ²„μ „μœΌλ‘œ μ—…λ°μ΄νŠΈν•˜λΌλŠ” λ―Έν•΄κ²° μš”μ²­μ΄ μžˆμŠ΅λ‹ˆλ‹€( μ—¬κΈ° 및 μ—¬κΈ° μ°Έμ‘°).

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰