Skip to content
Onegold11 edited this page Nov 18, 2018 · 2 revisions

์†Œ๊ฐœ

Git์€ ์šฐ๋ฆฌ๊ฐ€ Rabbit Escape๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ๋‚˜ ๊ทธ๋ž˜ํ”ฝ๋“ฑ์„ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๊ฒ ์ง€๋งŒ, ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ์„œ ๋„์›€์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ GitHub issue์— ๋„์›€์„ ์š”์ฒญํ•˜์„ธ์š”.

Git์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์†Œ๊ฐœ๋Š” Git by Andy Balaam์—์„œ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค, ๊ทธ๋ฆฌ๊ณ  ์ด ๋ฌธ์„œ์™€ ๊ด€๋ จ๋œ ์ฃผ์ œ๋Š” ๋งˆ์ง€๋ง‰ ์˜์ƒ์ธ Using GitHub and GitLab์—์„œ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด์ „ ์˜์ƒ์„ ๋ดค๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ

ํ”„๋กœ์ ํŠธ์— ๋ฌด์–ธ๊ฐ€(์ฝ”๋“œ, ๊ทธ๋ž˜ํ”ฝ, ์• ๋‹ˆ๋ฉ”์ด์…˜, ์Œ์•…, ๋ ˆ๋ฒจ, ...) ๊ธฐ์—ฌ๋ฅผ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ GitHub pull request๊ฐ€ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์— ์ž‘์—…์˜ pull์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Git์— ์žˆ๋Š” ๋ชจ๋“  ์ €์žฅ์†Œ๋Š” ๋…๋ฆฝ์ ์ด์ง€๋งŒ ๊ณตํ†ต์ ์ธ ๋ชฉํ‘œ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • GitHub๊ณ„์ • ๋งŒ๋“ค๊ธฐ. (์˜ˆ๋ฅผ ๋“ค์–ด ์ œ ๊ณ„์ •์€ colonelfazackerley์ž…๋‹ˆ๋‹ค.)
  • rabbit escape pages์œผ๋กœ ๊ฐ€์„œ "fork"๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹น์‹ ์˜ ๊ณ„์ •์— ์ด ์ €์žฅ์†Œ์˜ ๋ณต์‚ฌ๋ณธ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณง ๋‹น์‹ ์˜ ์ปดํ“จํ„ฐ์— ์ž‘์—… ์ €์žฅ์†Œ ์‚ฌ๋ณธ์ด ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์ž‘์—… ์ €์žฅ์†Œ์— ํ•œํ•ด์„œ ๋‹น์‹ ์˜ GitHub fork๋ฅผ "origin"์ด๋ผ ์นญํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹น์‹ ์˜ rabbit escape ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ œ ๊ฒƒ์€ https://github.com/colonelfazackerley/rabbit-escape ์ž…๋‹ˆ๋‹ค. clone URL์„ ์ฐพ์•„์„œ ์ด๊ฒƒ์„ ๋ณต์‚ฌํ•˜์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  clone์„ ํ•˜๋ฉด rabbit-escape์˜ ๋””๋ ‰ํ† ๋ฆฌ์™€ ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ ์ด๊ฒƒ์„ working ๋ณต์‚ฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
git clone https://github.com/colonelfazackerley/rabbit-escape.git
  • ์ปค๋ฐ‹ํ•˜๊ธฐ ์ „์— ๋‹น์‹ ์ด ๋ˆ„๊ตฌ์ธ์ง€ git์— ์•Œ๋ ค์ค„ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
git config --global user.email colonelfazackerley@users.noreply.github.com
git config --global user.name  colonelfazackerley
  • ์ด์ œ ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค์„ ๋ณด์—ฌ์ค„ ๋•Œ๊ฐ€ ๋์Šต๋‹ˆ๋‹ค. "genius"๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ branch๋ฅผ rabbit-escape ์•„๋ž˜์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑํ•˜์„ธ์š”.
git checkout -b genius
  • ์ฝ”๋“œ๋‚˜ ๊ทธ๋ž˜ํ”ฝ ๊ฐ™์€ ์ž‘์—…์„ ๋งˆ๊ตฌ์žก์ด๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. ์ž‘์—…์ด ๋๋‚˜๋ฉด ์ž‘์—… ์‚ฌ๋ณธ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ์ปค๋ฐ‹ํ•˜๊ธฐ ์ „์— ์ฒดํฌํ•ด์•ผํ•  ๋ช‡๊ฐ€์ง€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    make clean slowtest
    git status ์–ด๋–ค ํŒŒ์ผ์ด ๋ณ€๊ฒฝ, ์ถ”๊ฐ€, ์‚ญ์ œ๋๋Š”์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
    git add -i ์ถ”๊ฐ€ํ•  ํ•ญ๋ชฉ์„ ๋Œ€ํ™”์‹์œผ๋กœ ์„ ํƒํ•˜๋Š” ํ…์ŠคํŠธ UI ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์ปค๋ฐ‹์— ๋Œ€ํ•œ ์Šคํ…Œ์ด์ง•์ด๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.
    git diff ์ปค๋ฐ‹๋œ ๋‚ด์šฉ(HEAD)๊ณผ ๋ฐ”๋€ ๋‚ด์šฉ์„ ์ค„ ๋‹จ์œ„๋กœ ๋น„๊ตํ•ด์„œ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋‹จ ์ด๋ฏธ ์Šคํ…Œ์ด์ง•๋œ ํŒŒ์ผ์€ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.
    git commit -m "A description of the change" ์Šคํ…Œ์ด์ง•๋œ ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž‘์—…์„ ์กฐ๊ธˆ์”ฉ ๋งˆ์น ๋•Œ ๋งˆ๋‹ค ๋ฐฑ์—…์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ƒˆ๋กœ์šด branch("genius")๊ฐ€ GitHub("orgin")์— ๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค. -u ๋Š” ๋‹น์‹ ์˜ branch์˜ ๋กœ์ปฌ ์ž‘์—… ์‚ฌ๋ณธ์„ ๋‹น์‹ ์˜ ์ €์žฅ์†Œ์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.(๋กœ์ปฌ branch์˜ ๊ฒฝ๋กœ๋Š” orgin/genius๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.)
    git push -u origin genius
  • ์ž‘์—…์„ ์ข€ ๋” ํ–ˆ๋‹ค๋ฉด ์ฃผ๊ธฐ์ ์œผ๋กœ ์ปค๋ฐ‹์˜ ์ƒํƒœ์™€ ๋ณ€๊ฒฝ์ ์„ ํ™•์ธํ•˜์„ธ์š” ๋” ๋งŽ์€ ์ž‘์—…์„ ๋ฐฑ์—…ํ•˜๋ ค๋ฉด tracking์„ ์ด์šฉํ•ด git push์œผ๋กœ ์ถ”๊ฐ€ ์ปค๋ฐ‹์„ ๋ณด๋‚ด๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • genius์—์„œ ์ž‘์—…์ด ์™„๋ฃŒ๋๋‹ค๋ฉด(๋งˆ์ง€๋ง‰ push๋ฅผ ํ•œ ํ›„) rabbit-escape code page๋กœ ๊ฐ€์„ธ์š”. ์ตœ๊ทผ push๋ฅผ ํ™•์ธํ•˜๊ณ  create the pull request ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์ ์„ ๋‹ค์‹œ ํ™•์ธํ•˜๊ณ  ์„ค๋ช…์„ ๊ฐ„๋žตํžˆ ์ ์€ ๋’ค request๋ฅผ ์ƒ์„ฑํ•˜์„ธ์š”.

๋‹ค์Œ์— ํ•  ๊ฒƒ๋“ค

  • ๋ฉ”์ธ ์ €์žฅ์†Œ์— ๋‹น์‹ ์˜ ์ž‘์—… ๋ณต์‚ฌ๋ณธ์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์ธ ์ €์žฅ์†Œ์™€ ๋‹น์‹ ์˜ ์ž‘์—… ์‚ฌ๋ณธ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.: remote.
    git remote add upstream https://github.com/andybalaam/rabbit-escape.git
  • ๊ทธ๋Ÿฌ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ์ž‘์—… ์‚ฌ๋ณธ์— ๋‹น์‹ ์˜ ์ž‘์—… ์‚ฌ๋ณธ์„ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธ ์ €์žฅ์†Œ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ๋‹น์‹ ์˜ master branch๋ฅผ ๋ฉ”์ธ์ €์žฅ์†Œ์˜ branch์™€ ๋ณ‘ํ•ฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์„ธ์š”.
    git checkout master ํ˜„์žฌ branch๋กœ pullํ•ฉ๋‹ˆ๋‹ค
    git pull upstream master ๋‹น์‹ ์˜ ์ž‘์—… ์‚ฌ๋ณธ์˜ merge๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค
  • ์ด์ œ ๋ฒ„๊ทธ๋ฅผ ๊ณ ์น˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋‹ค์Œ branch๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    git checkout -b more-genius

Rabbot and Rabbit colliding