๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋นˆ ๊ตฌ๋ฉ ์ฑ„์šฐ๊ธฐ

[Git] ํ˜‘์—… ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ์ „ ์„ธ์›Œ์•ผ ํ•  GIT ๊ทœ์น™

์ฐธ๊ณ 

https://www.hanbit.co.kr/store/books/look.php?p_code=B8463790401 

 

๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šฐ๋Š” Git+GitHub ์ž…๋ฌธ

Git๊ณผ GitHub๋ฅผ ์ด์šฉํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ์ž…๋ฌธ์„œ๋‹ค. 1๋ถ€๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ๊ณผ Git ๊ณ ์œ ์˜ ๋ช…๋ น์–ด ์ค‘์‹ฌ์œผ๋กœ Git์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋ฐฐ์šด๋‹ค. ๊ทธ๋ฆฌ๊ณ  Git ๊ธฐ๋ฐ˜์˜ ๋Œ€ํ‘œ์ ์ธ ์›๊ฒฉ ์ €์žฅ

www.hanbit.co.kr

 

1. ์ปค๋ฐ‹ ๋‹จ์œ„

 

์ปค๋ฐ‹์˜ ๋‚ด์šฉ์„ ์ตœ์†Œ ๋‹จ์œ„Atomic๋กœ ์œ ์ง€ํ•˜๊ธฐ

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™๋“ค์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

  • ์ปค๋ฐ‹ ํ•˜๋‚˜๋Š” ํ•˜๋‚˜์˜ ์˜๋„๋งˆ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋”๋ผ๋„ ๊ทธ ์˜๋„๋Š” ๋‹จ ํ•˜๋‚˜์—ฌ์•ผ ํ•œ๋‹ค. ๋ฒ„๊ทธ ์ˆ˜์ •์ด๋“  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€์ด๋“ .
  • ํŒŒ์ผ์„ ํ•˜๋‚˜๋งŒ ์ˆ˜์ •ํ•˜๋”๋ผ๋„ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์˜๋„๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•˜์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค. ๋ฒ„๊ทธ ์ˆ˜์ •๊ณผ ์ƒˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋ฅผ ๋™์‹œ์— ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ์‰ฝ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ ์ƒ๋‹˜...

 

2. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ž‘์„ฑ ๊ทœ์น™

 

[category] - [simple message]

[detailed description]

 

[category] : ์ปค๋ฐ‹์˜ ์„ฑ๊ฒฉ์ด ๋ฌด์—‡์ธ์ง€ ํ•œ๋ฒˆ์— ์•Œ ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด๋กœ ์ž‘์„ฑํ•œ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ์งง๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ. 

 

[category] ์ž‘์„ฑ ๊ทœ์น™ ์˜ˆ

(์ด๋ฆ„) - (์„ค๋ช…)

fix - ์ž˜๋ชป๋œ ๋ถ€๋ถ„ ์ˆ˜์ •

add - ๊ธฐ๋Šฅ ์ถ”๊ฐ€

mod - ์ฝ”๋“œ ์ˆ˜์ •

rm - ๊ธฐ๋Šฅ ์‚ญ์ œ

 

์ „ ํšŒ์‚ฌ์—์„œ๋Š” ์ € ์นดํ…Œ๊ณ ๋ฆฌ์— ์ง€๋ผ ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ๋„ฃ์—ˆ์—ˆ๋‹ค.

 

[message] : ํ•ด๋‹น ์ปค๋ฐ‹์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ํ•œ ์ค„ ์„ค๋ช… ์ž‘์„ฑ. ์˜๋ฌธ ๊ธฐ์ค€ 70์ž ์ •๋„. ์ผ๋ฐ˜์ ์ธ ํ„ฐ๋ฏธ๋„์— ๋ณด์ด๋Š” ๊ธ€์ž ์ˆ˜๋ฅผ ๊ณ ๋ คํ•œ ๊ฒƒ

 

[detailed description] : ์ปค๋ฐ‹์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ๊ธฐ์ˆ . ํ•˜์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์„ ๊ผญ ์ง€์ผœ์„œ ์ž‘์„ฑํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•จ.

์™œ ์ปค๋ฐ‹์„ ํ–ˆ๋Š”์ง€ ์„ค๋ช…ํ•จ

๋ฒ„๊ทธ ์ˆ˜์ •์˜ ๊ฒฝ์šฐ ์›๋ž˜ ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”์ง€ ์„ค๋ช…

์‚ฌ์šฉ ์ค‘์ธ ์ด์Šˆ ํŠธ๋ž˜์ปค๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์ด์Šˆ์˜ ํ•˜์ดํผ๋งํฌ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค.

 

์ด๋Ÿฐ ๊ทœ์น™๋“ค์„ ์—ผ๋‘์— ๋‘๋ฉด์„œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ปค๋ฐ‹๋งŒ ๋ณด๊ณ ๋„ ๋งŽ์€ ์ •๋ณด๋ฅผ ์–ป๊ณ , ์ƒˆ๋กœ ํ˜‘์—…์— ์ฐธ๊ฐ€ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์ด์ „์˜ ์ปค๋ฐ‹ ๋กœ๊ทธ๋งŒ์„ ๋ณด๊ณ ๋„ ์ „์ฒด์ ์ธ ํ”„๋กœ์ ํŠธ ํ๋ฆ„์„ ์ดํ•ดํ•˜๊ณ  ํ˜„์žฌ ์ž‘์—…์— ์ฐธ์—ฌํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์›Œ์ง.

 

์ฐธ๊ณ ํ•˜๊ธฐ : https://wiki.openstack.org/wiki/GitCommitMessages

 

GitCommitMessages - OpenStack

Git Commit Good Practice The following document is based on experience doing code development, bug troubleshooting and code review across a number of projects using Git, including libvirt, QEMU and OpenStack Nova. Examination of other open source projects

wiki.openstack.org

 

3. ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ์ž‘์„ฑ ๊ทœ์น™

 

์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค ๋•Œ ์–ด๋–ป๊ฒŒ ์ด๋ฆ„์„ ์ง€์„์ง€๋ฅผ ํ˜‘์—…์ž๋“ค ์‚ฌ์ด์— ๊ณต์œ ํ•œ๋‹ค๋ฉด, ๋ธŒ๋žœ์น˜ ์ด๋ฆ„๋งŒ์„ ๋ณด๊ณ ์„œ ์–ด๋–ค ๋ชฉ์ ์œผ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”์ง€๋ฅผ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋ธŒ๋žœ์น˜ ๋˜ํ•œ ๋ช‡ ๊ฐ€์ง€ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์งง์œผ๋ฉด์„œ ์‰ฝ๊ฒŒ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๊ณ  ํ˜‘์—… ํ๋ฆ„์—์„œ ๊ถŒ์žฅํ•˜๋Š” ๋ธŒ๋žœ์นญ ๋ฐฉ์‹์— ๋”ฐ๋ผ์„œ ์ด๋ฆ„์„ ์ง“๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ์ž‘์„ฑ ๊ทœ์น™์˜ ์˜ˆ

(์ด๋ฆ„) - (์„ค๋ช…)

new - ์ƒˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€๊ฐ€ ๋ชฉ์ ์ธ ๋ธŒ๋žœ์น˜

test - ๋ฌด์–ธ๊ฐ€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ธŒ๋žœ์น˜(์ƒˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฐฐํฌ ํ•œ๊ฒฝ, ์‹คํ—˜ ๋“ฑ)

bug - ๋ฒ„๊ทธ ์ˆ˜์ •์ด ๋ชฉ์ ์ธ ๋ธŒ๋žœ์น˜

 

์ด๋Ÿฐ ์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฆ„์„ ์ ‘๋‘์–ด๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ, ๊ทธ ๋’ค์— ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ๋ถ™์ธ๋‹ค. ์ด๋•Œ ๊ตฌ๋ถ„์ž๋กœ๋Š” ์Šฌ๋ž˜์‹œ(/) ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. ์ด๋Ÿฐ ๊ทœ์น™์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

new/feat-foo

new/feat-bar

bug/critical-thing

test/awesome-new-library

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด git branch - list ๋ช…๋ น์„ ์‹คํ–‰ํ•ด ํŠน์ • ์นดํ…Œ๊ณ ๋ฆฌ ๋ธŒ๋žœ์น˜๋งŒ ์ฐพ์•„๋ณด๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.

SourceTree์—์„œ๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ํด๋”์ฒ˜๋Ÿผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ์ง€์„ ๋•Œ ํ•˜์ง€ ๋ง์•„์•ผ ํ•  ๊ฒƒ๋“ค๋„ ์žˆ๋‹ค.

  • ์‚ฌ๋žŒ์ด ํ•œ ๋ฒˆ์— ์•Œ์•„๋ณผ ์ˆ˜ ์—†๋Š” ์ด๋ฆ„(์˜ˆ: ์ˆซ์ž๋กœ๋งŒ ๋œ ์ด๋ฆ„)
  • ๋„ˆ๋ฌด ๊ธด ์„ค๋ช…์กฐ์˜ ์ด๋ฆ„

 

4. ํƒœ๊ทธ์™€ ๋ฒ„์ „ ์ด๋ฆ„ ์ž‘์„ฑ ๊ทœ์น™

 

๋ฒ„์ „ ์ด๋ฆ„์€ '์œ ์˜์  ๋ฒ„์ „(https://semver.org/lang/ko/)' ์›น ํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•ด ๋ฒ„์ „ ์ด๋ฆ„์„ ์ปค๋ฐ‹์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํƒœ๊น…ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

 

x.y.z ์œ ์˜์  ๋ฒ„์ „ ๊ฐ„๋‹จ ์„ค๋ช…

x๋Š” ๊ธฐ์กด๊ณผ ํ˜ธ์™„์ด ๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•  ๋•Œ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

y๋Š” ๊ธฐ์กด๊ณผ ํ˜ธ์™„์ด ๋˜๋ฉฐ, ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ๋•Œ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

z๋Š” ๊ธฐ์กด๊ณผ ํ˜ธ์™„์ด ๋˜๋ฉฐ, ๋ฒ„๊ทธ ์ˆ˜์ • ๋“ฑ์ด ๋  ๋•Œ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.