ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•


๐ŸŽฏ Git Fork App์œผ๋กœ Git ์—ฐ์Šตํ•˜๊ธฐ_02


๐Ÿ“š ์ด์–ด์„œ ๋ณด๊ธฐ

Git Fork App์œผ๋กœ Git ์—ฐ์Šตํ•˜๊ธฐ_01


๐Ÿง‘๐Ÿปโ€๐Ÿ’ป What - Git Fork๋ž€?


์ƒํ™ฉ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ•˜๊ธฐ


  • ์ž‘์—…ํ•ด๋ณผ ์ƒํ™ฉ์€ ์•„๋ž˜์™€ ๊ฐ™์•„์š”

    1. task/jay2์—์„œ jay2 ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ณ ์žˆ๋Š” ๋™์‹œ์— task/david2์—์„œ ๊ฐ™์€ ํŒŒ์ผ์— ๋‹ค๋ฅธ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด์š”. task/david2์—์„œ ๋จผ์ € develop์— mergeํ•˜๊ณ , task/jay2์—์„œ merge๋ฅผ ์‹œ๋„ํ•ด์š” -> conflict ๋ฐœ์ƒ
    2. epic/task/david1์—์„œ task/david2 ์ƒํƒœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ rebaseํ•ด์š”.
    3. commit์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ด์š”
    4. commit์˜ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•ด์š”
    5. amend๋กœ ๊ธฐ์กด ์ปค๋ฐ‹์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํฌํ•จ์‹œ์ผœ์š”.
  • ์ด๋ฒˆ ๊ธ€์—์„  ์œ„์˜ ์ž‘์—… ์ค‘ 1๋ฒˆ์„ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๐Ÿ›  How - ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ


  1. ์„œ๋กœ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์—์„œ ๊ฐ™์€ ํŒŒ์ผ์— ์ž‘์—…ํ•˜๊ธฐ


    ์šฐ์„  task/david2์—์„œ README.md์— ๊ธ€์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ ์ฝ”๋“œ๊ฒ ์ฃ ?



    ์ด์ œ ์ด๊ฑธ remote์— ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ƒ๊ธฐ๋ฉด git Fork์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.



    Local Changes์— (1)์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๊ฑธ ํด๋ฆญํ•˜๋ฉด ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.



    ์‚ญ์ œ๋œ ์ •๋ณด๋Š” ๋นจ๊ฐ„์ƒ‰์œผ๋กœ, ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ๋‚ด์šฉ์€ ์ดˆ๋ก์ƒ‰์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

    ์ด์ œ ์ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ commitํ•˜๊ณ  remote์— pushํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

    CLI๋กœ ์ž‘์—…ํ•  ๊ฒฝ์šฐ commit ์ „์— git add ์ž‘์—…์„ ํ•˜๋Š”๋ฐ์š”, ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ„ํŽธํ•˜๊ฒŒ Stage๋ผ๋Š” ๋ฒ„ํŠผ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์‚ฌ์ง„์—์„œ UnStaged ์˜ค๋ฅธ์ชฝ์— ๋ณด์ด๋Š” ๋ฒ„ํŠผ์ž…๋‹ˆ๋‹ค!

    ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด



    ์œ„์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด Staged๋˜๊ณ , Commit ๋ฉ”์„ธ์ง€๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด Commit ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.



    Commit ํ›„์— Push๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

    Push๋Š” ์•„๋ž˜์˜ ๋ฒ„ํŠผ์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.



    remote์˜ task/david2 ๋ธŒ๋žœ์น˜์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ pushํ•œ ํ›„ develop์— task/david2๋ฅผ mergeํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ develop ๋ธŒ๋žœ์น˜์—๋Š” conflict ๋ ๋งŒํ•œ ์š”์†Œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์—†์ด push๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    ๊ทธ๋Ÿผ ์ด์ œ origin/develop๊ณผ origin/task/david2์— ์ฐจ์ด๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ develop์„ ์šฐํด๋ฆญํ•ด๋ณด๋ฉด



    ๊ฐ™์€ ์˜ต์…˜์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ € ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด



    ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ conflicts ๋  ๋ถ€๋ถ„์€ ์—†๊ตฌ์š”!

    ๊ทธ๋Ÿฌ๋ฉด ์—ฌ๊ธฐ์„œ ์ € ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด develop์— ์žˆ๋Š” ์ •๋ณด๊ฐ€ task/david2๋กœ ๊ฐˆ๊นŒ์š”, ์•„๋‹ˆ๋ฉด task/david2์— ์žˆ๋Š” ์ •๋ณด๊ฐ€ develop์œผ๋กœ merge๋ ๊นŒ์š”?

    ์˜์–ด์—์„œ ๋Š๋ผ์…จ๊ฒ ์ง€๋งŒ into 'task/david2'์ด๊ธฐ ๋•Œ๋ฌธ์— develop์— ์žˆ๋Š” ์ƒํƒœ๊ฐ€ task/david2๋กœ ๊ฐ€๊ฒŒ๋ฉ๋‹ˆ๋‹ค.. ์ฆ‰ ๋ณ€ํ•˜๋Š” ๊ฑด task/david2๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด์ฃ .


    ๋ชฉ์ ์€ develop์— task/david2์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด์ œ ๋ฐ˜๋Œ€๋กœ ํ•˜๋ฉด ๋˜๊ฒ ์ฃ !

    develop ๋ธŒ๋žœ์น˜์— ์ฒดํฌ์ธ ํ•œ ํ›„, david2 ๋ธŒ๋žœ์น˜์—์„œ Merge into "develop"์„ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋จธ์ง€ ๋ฐ›์„ ๋ธŒ๋žœ์น˜์— ์ฒดํฌ์ธํ•œ ํ›„, ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ฐ€์ ธ์˜ฌ ๋ธŒ๋žœ์น˜์—์„œ ์šฐํด๋ฆญํ•˜์—ฌ Merge into๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

    ์ด์ œ david2๋ฅผ develop์— Merge ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— task/jay2 ๋ธŒ๋žœ์น˜๋กœ ๊ฐ€๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๋ธŒ๋žœ์น˜์—์„œ README.md์— ๋‹ค๋ฅธ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ  ๋˜‘๊ฐ™์ด commitํ•ฉ๋‹ˆ๋‹ค!

    ๊ทธ๋ฆฌ๊ณ  develop ๋ธŒ๋žœ์น˜์— task/jay2๋ฅผ ๋จธ์ง€ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์•„๊นŒ์™€ ๋‹ค๋ฅธ ์ƒํ™ฉ์ด ๋ฉ๋‹ˆ๋‹ค.



    ๋‹น์—ฐํžˆ conflict๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค! ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  Merge๋ฅผ ๋ˆ„๋ฅธ๋‹ค๋ฉด



    ๋‹น์—ฐํžˆ ๊ฒฝ๊ณ ๊ฐ€ ๋‚˜์˜ค๊ฒ ์ฃ .. ์ด์ œ conflict๋ฅผ ํ•ด๊ฒฐํ•ด์ฃผ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.



    ํ™•์‹คํžˆ GUI๋Š” Conflict๋„ ํ™”๋ คํ•˜๋„ค์š”.. ์ด์ œ ํ•ด๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

    ๋‹น์—ฐํžˆ Merge in Fork๋Š” Fork์—์„œ Conflict๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค๋Š” ๊ฒƒ์ด๊ณ , External Tool์€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์“ด๋‹ค๋Š” ๊ฑฐ๊ฒ ์ฃ ? Merge in Fork๋ฅผ ์‚ฌ์šฉํ•ด์ค๋‹ˆ๋‹ค.



    ์•„๋ฆ„๋‹ค์šด ์ƒ‰๊ฐ์˜ Conflict๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ €๋Š” ์™ผ์ชฝ ๋‚ด์šฉ๊ณผ ์˜ค๋ฅธ์ชฝ ๋‚ด์šฉ์„ ํ•ฉ์น ๊ฑฐ์—์š”. ์š”๋ฆฌ์กฐ๋ฆฌ ๋ณ€๊ฒฝํ•ด์„œ Resolve๋ฅผ ํ•ด์ฃผ๋ฉด



    ์ด๋ ‡๊ฒŒ Conflict๊ฐ€ ํ•ด๊ฒฐ๋œ ์ƒํƒœ๋กœ ์ž๋™์œผ๋กœ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์— ๋‚ด์šฉ๊นŒ์ง€ ์ฑ„์›Œ์ค๋‹ˆ๋‹ค! Commit ํ•˜๊ณ  Push ํ•ด๋ณด๋ฉด ๋ฌธ์ œ์—†์ด Push๋ฉ๋‹ˆ๋‹ค! Conflict๊ฐ€ ์—†์œผ๋‹ˆ๊นŒ์š” ใ…Žใ…Ž

    ์ด์ œ ํŠธ๋ฆฌ๋ฅผ ๋ณด๋ฉด



    ์•„์ง ํŠธ๋ฆฌ๋ณด๋Š”๊ฒŒ ์ต์ˆ™ํ•˜์ง€๊ฐ€ ์•Š๋„ค์š”..ใ…Žใ…Ž

    ํ›„ ์ด ๊ธ€ ์‹œ๋ฆฌ์ฆˆ์˜ ๋์ด ์–ด๋””์ผ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ํ˜น์‹œ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์ด๋‚˜ ์ถ”๊ฐ€ํ•  ๋‚ด์šฉ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! :]

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๋ฐ˜์‘ํ˜•
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG more
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ