๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐ•์˜ ์ •๋ฆฌ/CLASS101 ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ ์‹ค๋ฌด

Chapter4 - ๋ฐฐํฌ ์ž๋™ํ™”์™€ ํ˜‘์—…์„ ์œ„ํ•œ Git ์‚ฌ์šฉ - ์‹ค๋ฌด์—์„œ ์œ ์šฉํ•œ Git ๊ฟ€ํŒ

by ์ฃผ๋ฐœ2 2021. 3. 5.
๋ฐ˜์‘ํ˜•

 ์•ˆ๋…•ํ•˜์„ธ์š”~ ์ด์ „์— ์šด์˜ํ•˜๋˜ ๋ธ”๋กœ๊ทธ ๋ฐ GitHub, ๊ณต๋ถ€ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋Š” Study-GitHub ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค!

 ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ

 GitHub

Study-GitHub

 ๐Ÿ”


 

โœ” CLASS101 ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ ์‹ค๋ฌด - Chapter4 ๋ฐฐํฌ ์ž๋™ํ™”์™€ ํ˜‘์—…์„ ์œ„ํ•œ Git ์‚ฌ์šฉ

์•ˆ๋…•ํ•˜์„ธ์š”, ํด๋ž˜์Šค101 ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ ์‹ค๋ฌด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ , ๋ณต์Šต ์ฐจ์›์œผ๋กœ ์ •๋ฆฌํ•˜์—ฌ ๋‚จ๊ธฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

ํ˜น์‹œ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค๋ฉด ๊ธ€์„ ์‚ญ์ œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค !!

 

class101.net/products/5fc4a3b4fc231b000d85661b

 

ํ˜„์ง ๋Œ€๊ธฐ์—… ๊ฐœ๋ฐœ์ž ํ‘ธ์™€ ํ•จ๊ป˜ํ•˜๋Š” ์ง„์งœ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ ์‹ค๋ฌด!

IT ๋Œ€๊ธฐ์—…๋“ค์˜ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ๊ณต๊ณ ๋ฅผ ๋ณธ ์  ์žˆ๋‚˜์š”? ๐Ÿ“์œ„ ๋ฐ‘์ค„ ์นœ ๋ถ€๋ถ„์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋„๋ก ์ปค๋ฆฌํ˜๋Ÿผ์„ ๊ตฌ์„ฑํ–ˆ์–ด์š”. ๊ฒ‰๋ณด๊ธฐ์—” ์–ด๋ ค์›Œ ๋ณด์ด์ง€๋งŒ, ๊ฒฐ๊ตญ ๋ฐฐ์šฐ๊ณ  ๋‚˜๋ฉด ๋‚˜๋„ ์ €๋Ÿฐ ๊ณณ์—์„œ ์ผํ•  ์ˆ˜ ์žˆ

class101.net


 

โœ” ๋จธ์ง€ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ถฉ๋Œ(Conflict) ํ•ด๊ฒฐํ•˜๊ธฐ

์ถฉ๋Œ์€ ์–ธ์ œ, ์™œ ๋ฐœ์ƒํ•˜๋‚˜์š”?

    ์„œ๋กœ ๋‹ค๋ฅธ branch๋ฅผ mergeํ•˜๋ ค๊ณ  ํ•  ๋•Œ

    ๊ฐ™์€ ํŒŒ์ผ์„ ๊ฐ๊ฐ ๋‹ค๋ฅด๊ฒŒ ์ˆ˜์ •ํ–ˆ์„ ๋•Œ

์ถฉ๋Œ ํ•ด๊ฒฐํ•˜๊ธฐ

์ถฉ๋Œ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋‚˜์š”?

    • ์„œ๋กœ ๊ฐ™์€ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • ๊ฐ€๊ธ‰์  ์งง์€ ๋‹จ์œ„๋กœ ์ž‘์—…/๋จธ์ง€๊ฐ€ ์ด๋ฃจ์–ด์ ธ์•ผ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.

์ถฉ๋Œ์€ Git๋งŒ์˜ ๋ฌธ์ œ์ผ๊นŒ์š”?

    • ์ถฉ๋Œ์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

 

 

 

 

โœ” ์‹ค๋ฌด์—์„œ ์œ ์šฉํ•œ Git ๊ฟ€ํŒ

Git-flow

Pull Request๋กœ mergeํ•˜๊ธฐ

๋งˆ์ง€๋ง‰ commit ์ˆ˜์ •ํ•˜๊ธฐ

• ์›ํ•˜๋Š” commit๋งŒ ๊ฐ€์ ธ์™€ ํ˜„์žฌ branch์— ๋ถ™์ด๊ธฐ

 

 

 

 

๐ŸŽ— GitHub์— Repository๋ฅผ ์ƒ์„ฑํ•˜๊ณ , SourceTree๋ฅผ ํ†ตํ•ด Clone์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์œ„์™€ ๊ฐ™์ด README.md ํŒŒ์ผ ํ•˜๋‚˜๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๊ณ , Initial commit ๋ผ๋Š” ์„ค๋ช…์œผ๋กœ ํ•˜๋‚˜ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

์šฐ์ธก ์ƒ๋‹จ์— ๊นƒ ํ”Œ๋กœ์šฐ๋ฅผ ํด๋ฆญ ํ•œ ํ›„ ์œ„์™€ ๊ฐ™์ด ์„ค์ •ํ•œ ํ›„ ํ™•์ธ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

(์ œํ’ˆ ๋ธŒ๋žœ์น˜๋งŒ main์œผ๋กœ ๋ณ€๊ฒฝ)

 

 

 

๊ทธ๋Ÿผ ์ขŒ์ธก์— develop ๋ผ๋Š” ๋ธŒ๋žœ์น˜๋งŒ ์ƒ์„ฑ๋œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(๋ชจ๋“  ๊ฐœ๋ฐœ์€ develop ๋ธŒ๋žœ์น˜์—์„œ ์ง„ํ–‰์„ ํ•ฉ๋‹ˆ๋‹ค.)

 

 

 

Visual Studio Code๋กœ ์œ„์—์„œ Cloneํ•œ git-flow-practice ํด๋”๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

์†Œ์ŠคํŠธ๋ฆฌ์—์„œ ๊นƒ ํ”Œ๋กœ์šฐ ํด๋ฆญ > ์ƒˆ ๊ธฐ๋Šฅ ์‹œ์ž‘ ํด๋ฆญ

 

 

 

๊ธฐ๋Šฅ๋ช…์— add-file1 ๋กœ ์„ค์ •ํ•˜๊ณ  ํ™•์ธ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

 

 

 

 

๊ทธ๋Ÿฌ๋ฉด feature์— add-file1 ์ด๋ผ๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋น„์ฅฌ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ์—์„œ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

 

 

 

์œ„์™€ ๊ฐ™์ด ์•„๋ฌด๋Ÿฐ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์†Œ์ŠคํŠธ๋ฆฌ๋กœ ๊ฐ‘์‹œ๋‹ค.

 

 

 

์†Œ์ŠคํŠธ๋ฆฌ์—์„œ ๋ณด๋ฉด ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š”๋ฐ์š”, ์ด ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ•ด์ค์‹œ๋‹ค.

(์ขŒ์ธก ์ƒ๋‹จ์˜ ์ปค๋ฐ‹ ๋ฒ„ํŠผ ํด๋ฆญ)

 

 

 

ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ฆฌ๊ณ , ์ปค๋ฐ‹ ๋‚ด์—ญ์„ ์ž‘์„ฑํ•œ ๋’ค ์ปค๋ฐ‹์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

 

 

 

์œ„์™€ ๊ฐ™์ด add-file1 ์ด ์ปค๋ฐ‹์ด ๋œ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์€ ์ƒํƒœ์—์„œ ๋‹ค์‹œ develop ๋ธŒ๋žœ์น˜๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

 

 

 

develop ๋ธŒ๋žœ์น˜์—์„œ ๊นƒ ํ”Œ๋กœ์šฐ > ์ƒˆ ๊ธฐ๋Šฅ ์‹œ์ž‘ > add-file2 ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ํ™•์ธ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

 

 

 

๋น„์ฅฌ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ์—์„œ add-file2 ๋ธŒ๋žœ์น˜์—์„œ file2 ๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

๋‹ค์‹œ ์†Œ์ŠคํŠธ๋ฆฌ์—์„œ ์ปค๋ฐ‹์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๐ŸŽ— ํ˜„์žฌ ์ƒํ™ฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • git-flow ์ „๋žต์„ ์‚ฌ์šฉํ•ด branch์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

    • develop ๋ธŒ๋žœ์น˜์—์„œ ๋ชจ๋“  ๊ฐœ๋ฐœ์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

    • feature ๋ธŒ๋žœ์น˜์—์„œ ๊ฐ๊ฐ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

        • ํ˜„์žฌ add-file1 ๋ธŒ๋žœ์น˜์™€ add-file2 ๋ธŒ๋žœ์น˜๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

        • add-file2 ๋ธŒ๋žœ์น˜์˜ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ๋๋‚œ ์ƒํƒœ์ด๊ณ , ์ด๋ฅผ develop ๋ธŒ๋žœ์น˜์— merge๋ฅผ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

ํ˜„์žฌ add-file2 ๋ธŒ๋žœ์น˜์—์„œ develop ๋ธŒ๋žœ์น˜๋กœ merge๋ฅผ ์œ„ํ•ด ๊นƒ ํ”Œ๋กœ์šฐ > ๊ธฐ๋Šฅ ๋งˆ๋ฌด๋ฆฌ ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

 

 

์œ„์™€ ๊ฐ™์ด ๊ธฐ๋ณธ ์„ค์ •(rebase ์•ˆํ•จ, ๋ธŒ๋žœ์น˜ ์‚ญ์ œํ•จ) ์œผ๋กœ ์„ค์ •ํ•œ ๋’ค ํ™•์ธ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

 

 

 

 

add-file2 ๋ธŒ๋žœ์น˜๊ฐ€ ์‚ญ์ œ๊ฐ€ ๋˜์—ˆ๊ณ , develop ๋ธŒ๋žœ์น˜์— ์ •์ƒ์ ์œผ๋กœ merge๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

add-file1 ๋ธŒ๋žœ์น˜๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ๋Šฅ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ๋๋‚˜๊ณ , develop ๋ธŒ๋žœ์น˜๋กœ merge๊ฐ€ ๋๋‚˜๋ฉด ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊นƒ ํ”Œ๋กœ์šฐ > ์ƒˆ ๋ฆด๋ฆฌ์ฆˆ ์‹œ์ž‘ > ๋ฆด๋ฆฌ์ฆˆ ๋ช… ์„ค์ • ํ›„ ํ™•์ธ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

 

 

 

๋ฆด๋ฆฌ์ฆˆ ๋ธŒ๋žœ์น˜(v1.0.0) ์—์„œ ๊นƒ ํ”Œ๋กœ์šฐ > ๋ฆด๋ฆฌ์ฆˆ ๋งˆ๋ฌด๋ฆฌ ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

(๋ฆด๋ฆฌ์ฆˆ ๋ธŒ๋žœ์น˜๋ฅผ main ๋ธŒ๋žœ์น˜์—๋„ merge๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.)

 

 

 

์œ„ ํ™”๋ฉด์—์„œ ํ™•์ธ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๋ฆด๋ฆฌ์ฆˆ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ํ•˜๋ฉด develop์™€ main์ด ๋™์ผํ•œ ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

develop ์—์„œ Push๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋Ÿผ ๋กœ์ปฌ๊ณผ ๋ฆฌ๋ชจํŠธ์˜ ์ƒํƒœ๊ฐ€ ๋ชจ๋‘ develop๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

๋ธŒ๋žœ์น˜ > ์ƒˆ ๋ธŒ๋žœ์น˜ > feature/add-file3 ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๊ทธ ํ›„ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ์—์„œ file3 ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ file3 ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๊ทธ ํ›„ ํ˜„์žฌ add-file3 ํŒŒ์ผ์„ Push ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๊ทธ ํ›„ GitHub๋กœ ๋“ค์–ด์™€์„œ Pull requests > New pull request ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๋ธŒ๋žœ์น˜๋ฅผ feature/add-file3 ์—์„œ develop ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ Create pull request๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

 

 

์‹ค์ œ ํ˜‘์—…์„ ํ• ๋•Œ๋Š” Reviewers(๋ฆฌ๋ทฐ์–ด) ์™€ Assignees(์ˆ˜๋ฝ์ธ) ์„ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋Ÿผ ์œ„์™€ ๊ฐ™์ด PR์ด ์ •์ƒ์ ์œผ๋กœ ๋“ฑ๋ก์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์œ„์— ๋”ฐ๋ผ์„œ PR(Pull Request)์„ Closeํ•˜๊ฑฐ๋‚˜, Merge ํ•˜๊ฑฐ๋‚˜ ๋“ฑ์˜ ์—ฌ๋Ÿฌ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ๋Š” Merge pull request๋ฅผ ํ†ตํ•ด Confirm merge๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๊ทธ ํ›„ ์†Œ์ŠคํŠธ๋ฆฌ์—์„œ develop > Pull ์„ ํ†ตํ•ด ๋ฆฌ๋ชจํŠธ ์ƒํƒœ๋ฅผ ๋‹น๊ฒจ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์œ„์—์„œ Merge ํ–ˆ๋˜ PR(Pull Request)๊ฐ€ ์ •์ƒ์ ์œผ๋กœ Pull์ด ๋ฉ๋‹ˆ๋‹ค.

(v1.0.0 ์˜†์— ํƒœ๊ทธ ํ‘œ์‹œ๊ฐ€ ์žˆ๋Š”๋ฐ, ํ•ด๋‹น ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.)

 

 

 

์ด์ „ ์ปค๋ฐ‹ ์ˆ˜์ •: ์ปค๋ฐ‹ > ์ปค๋ฐ‹ ์˜ต์…˜ > ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹ ์ •์ •

์›ํ•˜๋Š” commit๋งŒ branch์— ๋ถ™์ด๊ธฐ: ์ฒด๋ฆฌํ”ฝ ํ‚ค์›Œ๋“œ

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€