/Git_memo

โœ๐Ÿ“’๐Ÿ“•๐Ÿ“—๐Ÿ“˜ Git,,,๋ฉ”๋ชจ โœ๐Ÿ“’๐Ÿ“•๐Ÿ“—๐Ÿ“˜

Git ( Version Control System )

Git - Version Control System ์ค‘ ํ•œ ์‹œ์Šคํ…œ์ด๋‹ค.

report.xls โ†’ report_final_real_final.xls ์ด๋ ‡๊ฒŒ ํ•ด์•ผํ•˜๋Š” ๊ฒƒ

Version Management not by changing the file name

  1. Backup 2. Recovery 3. Collaboration

Version Control Systems โ†’ CVS , SVN , GIT ๊ฐ€ ์žˆ๋‹ค.

Git is incredibly complex โ†’ ๋ฏฟ์–ด์ง€์ง€์•Š์„๋งŒํผ ๋ณต์žกํ•˜๋‹ค.

๋ฒ„์ „ ์ปจํŠธ๋กค ์‹œ์Šคํ…œ โ†’ dropbox, google Drive ๊ฐ™์€ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๊ฒƒ๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•˜๊ธฐ

์ž์‹ ์ด ์–ด๋Š ์ƒํ™ฉ์ด๋ƒ์— ๋”ฐ๋ผ git, google Drive๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ

โœ… git : Start a working area : ์ž‘์—…์žฅ์—์„œ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ฒ ๋‹ค.

  - 1. Clone , 2. init 

โœ… init : ํ˜„์žฌ ๋””ํ…ํ† ๋ฆฌ์— ๋‚ด๊ฐ€ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ฒ ๋‹ค๋ผ๋Š” ๊ฒƒ์„ ๊นƒ์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ

 git init 

ls -al : ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋ ค๋Š” ๊ฒƒ

cat f1.txt : ํ•˜๋ฉด txtํŒŒ์ผ์˜ ๋‚ด์šฉ์ด ๋ณด์—ฌ์ง„๋‹ค.

Untitled

  • ์ง€๊ธˆ ์ƒ์„ฑํ•œ f1.txt ํŒŒ์ผ์€ ๋ฒ„์ „๊ด€๋ฆฌ๊ฐ€ ๋˜๊ณ  ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ธ gitfth ์•ˆ์—๋Š” ์กด์žฌํ•˜์ง€๋งŒ

์šฐ๋ฆฌ๊ฐ€ ์ด ํŒŒ์ผ์„ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•ด๋ผ๊ณ  ์–˜๊ธฐํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๊นƒ์€ ์–˜๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

โœ… add : ๊นƒ์—๊ฒŒ ์ด f1.txtํŒŒ์ผ์„ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๋ผ๊ณ  ๋ง์„ ํ•ด์•ผํ•จ! ์ด ๋•Œ, ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด๊ฐ€ add ์ด๋‹ค. , ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์„œ ๋ฒ„์ „์„ ๋งŒ๋“ค๊ธฐ ์ „์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

git add f1.txt 

Untitled 1

  • git add ๋ฅผ ํ•˜๋ฉด ์•„๊นŒ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ status์‹œ git์ด new file์ด๋ผ๊ณ  ์ธ์‹ํ•œ๋‹ค.
git config --global user.name ๋‹‰๋„ค์ž„
git config --global user.email ์ด๋ฉ”์ผ
git add์˜ ๋‹ค์–‘ํ•œ ์˜ต์…˜
  • git add. ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ์ถ”๊ฐ€

  • git add -u ์ˆ˜์ •๋œ ๋ถ€๋ถ„ ์ถ”๊ฐ€

  • git add -A ํด๋” ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ ์ถ”๊ฐ€

  • git add -i ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ• ๋Œธ ๋Œ€ํ™”์‹์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ

  • git add * ๋ชจ๋“  ํŒŒ์ผ์„ staged ์ƒํƒœ๋กœ ๋งŒ๋“ฌ -> .gitigonore ๋ฌด์‹œํ•˜๊ณ  ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋„ ์žˆ์Œ

  • git add -p ์ˆ˜์ •๋œ๊ฑฐ ํ™•์ธ ํ›„ ์ถ”๊ฐ€ํ•˜๊ธฐ

  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋ดค์„๋•Œ ๋ˆ„๊ฐ€ ์ž‘์—…ํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜์˜ ๋‹‰๋„ค์ž„๊ณผ ์ด๋ฉ”์ผ์„ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. ( ์ด๊ฑด ๋”ฑ ํ•œ๋ฒˆ๋งŒ ํ•˜๋ฉด๋œ๋‹ค. )

โœ… commit : ํ˜„์žฌ ๋ฒ„์ „์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ ๋Š” ๊ฒƒ , ์ด ๋ณ€ํ™”๊ฐ€ ์–ด๋–ค๋ณ€ํ™”๋กœ ๋˜์—ˆ๋Š”์ง€, ํŒŒ์ผ์ด ์™œ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ !

Untitled 2

  • ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ž˜ ๋œ ๊ฒƒ
  • ๋ณดํ†ต git commit -m "๋ฉ”์‹œ์ง€" ์ด๋ ‡๊ฒŒ ํ•œ๋‹ค.
  • -a : add ์™€ ๊ฐ™์ด ํ•˜๋Š” ๋ช…๋ น์–ด
  • -am : add ๋ช…๋ น์–ด์™€ m๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด
  • git commit โ€”help ๋กœ ๋‹ค์–‘ํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

log : ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๋ฉด commit ๋“ฑ ๋‚ด๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ํ–ˆ๋˜ commit ๋“ค์„ ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค.

โœ… diff : ๋‘ ์ปค๋ฐ‹ ์‚ฌ์ด์˜ ๋‹ค๋ฅธ ์ ์„ ์•Œ๊ณ  ์‹ถ์„๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ

Untitled 3

Untitled 4

  • git diff๋ฅผ ํ†ตํ•ด ๋‚ด๊ฐ€ ํ˜„์žฌ ์–ด๋–ค์ž‘์—…์„ ํ–ˆ๋Š”์ง€ ์ „ โ†’ ํ›„๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • commit๋ฅผ ํ•˜๊ธฐ ์ „ ๋‚ด๊ฐ€ ํ•œ ์ž‘์—…์ด ์ž˜๋๋Š”์ง€ ์•ˆ๋๋Š”์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ์ง€๋ง‰ ๊ธฐํšŒ! ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Untitled 5

  • reset : commit ๋ฅผ ์ง€์šฐ๊ณ  ๋‹ค์‹œํ•˜๋Š” ๋ช…๋ น์–ด ( ๋‚˜์ค‘์— soft๋ฅผ ๋ฐฐ์šด๋‹ค. hard๋Š” ์กฐ๊ธˆ ์œ„ํ—˜ํ•˜๋‹ค๋Š” ๊ฒƒ)

revert : commit ๋ฅผ ์ง€์šฐ๊ณ  ๋‹ค์‹œํ•˜๋Š” ๋ช…๋ น์–ด

Untitled 6

  • ์ƒํ™œ์ฝ”๋”ฉ์—์„œ ๋‚˜์˜จ ์‚ฌ๋žŒ๋“ค์ด ์ž์ฃผ ๊ฒ€์ƒ‰ํ•˜๋Š” git ๋ช…๋ น์–ด๋“ค (์ค‘์š”๋„ ์ˆœ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค. )

โœ… branch : ๋‚˜๋ญ‡๊ฐ€์ง€

report.xsl โ†’ report1.xsl โ†’ report2.xsl ์ˆœ์œผ๋กœ ์ˆ˜์ •๋˜๋Š” ํŒŒ์ผ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

์ด ํŒŒ์ผ์„ ์ผ๋ถ€ ์ˆ˜์ •ํ•˜์—ฌ client์—๊ฒŒ ์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ž.

report2.xsl โ†’ report2_client.xsl โ†’ report_client2.xsl โ€”โ€”โ€”>

                                                                                                 reposrt5.xsl       โ†’  report6.xsl 

              โ†’ report3.xsl โ†’ reporst4.xsl                   โ€”โ€”โ€” > 

Untitled 7

  • git branch : ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ช…๋ น์–ด

Untitled 8

  • git checkout exp ๋Š” ํ˜„์žฌ ๋ธŒ๋žœ์น˜์ธ master๋ฅผ ์ฒดํฌ์•„์›ƒํ•˜๊ณ  exp๋กœ ํ•˜๊ฒ ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Untitled 9

  • git log โ€”braches โ€”decorate๋Š” ๋ชจ๋“  branch git log๋ณ„๋กœ ์ตœ์‹  commit ์ด ๋ณด์—ฌ์ง„๋‹ค.

Untitled 10

  • โ€” graph๋ฅผ ํ†ตํ•ด 5์™€ 3,4๋Š” 2์ด๋ผ๋Š” ๊ณตํ†ต์—์„œ ๋‚˜์˜จ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Untitled 11

  • โ€” oneline ๋ฅผ ํ•˜๋ฉด ์ข€ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Untitled 12

  • log ์™€ exp๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
  • log์—๋Š” ์—†๊ณ  exp์—๋Š” ์žˆ๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์คŒ ! (๋งŒ์•ฝ git log exp..master๋ฅผ ํ•˜๋ฉด exp์—๋Š” ์—†๊ณ  master์—๋Š” ์žˆ๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค. )

โœ… merge : ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ

Untitled 13

Untitled 14

Untitled 15

  • Fast-forward - ๋น ๋ฅธ๊ฐ๊ธฐ ์‹œ merge๋ฅผ ํ•ด๋„ master๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ์ปค๋ฐ‹์ด ๋ˆ„๊ตฌ์ธ์ง€๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ

โœ… stash : ๊ฐ์ถ”๋‹ค , ์ˆจ๊ฒจ๋‘๋‹ค โ†’ ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€์ง€๊ณ  ์ž‘์—…์„ ํ•˜๋‹ค๋ณด๋ฉด ์ž‘์—…ํ•˜๋˜ ๋„์ค‘ ๋‹ค๋ฅธ๋ธŒ๋žœ์น˜๋กœ checkout์„ ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๊ฒฝ์šฐ ์ž‘์—…์ด ๋๋‚˜๊ธฐ์ „์— commitํ•˜๊ธฐ๋„ ์• ๋งคํ•˜๊ณ  ํ•  ์ƒํ™ฉ์— ์ž‘์—…ํ•˜๋˜ ๊ฒƒ์„ ์ž ๊น ์ˆจ๊ฒจ๋‘˜ ์ˆ˜ ์žˆ๋‹ค.

  • git stash๋ฅผ ํ†ตํ•ด stash๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. โ†’ ํ•ด๋‹น f1.txt๋Š” ์ˆ˜์ •ํ•˜๊ธฐ ์ „(a)

    ์œผ๋กœ ๋˜์–ด์žˆ๋‹ค.

    Untitled 16

Untitled 17

  • git stash apply๋ฅผ ํ•˜๋ฉด ์ˆ˜์ •ํ–ˆ๋˜ ๋‚ด์šฉ (a b) ๊ฐ€ ์žˆ๋‹ค.
  • stash๋Š” ๋ช…์‹œ์ ์œผ๋กœ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š” ํ•œ ์‚ด์•„์žˆ๋‹ค. (git stash list ๋กœ ์•Œ ์ˆ˜ ์žˆ์Œ)

โœ… Head์™€ branch : git์„ ์ฒ˜์Œ ๋งŒ๋“ค๋ฉด Head๋ผ๋Š” ํŒŒ์ผ์ด ๋ฐ˜๋“œ์‹œ ์ƒ์„ฑ๋œ๋‹ค. heads๋Š” master๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. head๋Š” refs/heads/master๋ฅผ ๊ฐ€๋ฅดํ‚ค๊ณ  masterํŒŒ์ผ์— ์ ํ˜€์žˆ๋Š” ์ปค๋ฐ‹ objectid๊ฐ’์„ ํ†ตํ•ด ๊ฐ€์žฅ ์ตœ์‹  ์ปค๋ฐ‹์ด ๋ญ”์ง€ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค! ๊ทธ ์ „ํŒŒ์ผ๋“ค์€ parent๋ฅผ ํ†ตํ•ด ! ์•Œ ์ˆ˜ ์žˆ๋‹ค.

โœ… branch ์ถฉ๋Œํ•ด๊ฒฐ

  • ๊ฐ™์€ ํŒŒ์ผ์—๋„ ์ˆ˜์ •ํ•œ ๋ถ€๋ถ„์ด ๋‹ค๋ฅด๋‹ค๋ฉด merge๋ฅผ ํ–ˆ์„๋•Œ์—” ์ถฉ๋Œ๋‚˜์ง€ ์•Š๋Š”๋‹ค!
  • ํ•˜์ง€๋งŒ, ๊ฐ™์€ ํŒŒ์ผ์—์„œ ์ˆ˜์ •ํ•œ ๋ถ€๋ถ„์ด ๊ฐ™๋‹ค๋ฉด merge๋ฅผ ํ–ˆ์„๋•Œ ์ถฉ๋Œ๋‚œ๋‹ค.

Untitled 18

  • ์ถฉ๋Œ๋‚ฌ์„ ๋•Œ์— ํ•ด๊ฒฐํ•˜๋Š” ๋ฒ• =======์ด๊ฒŒ ๊ตฌ๋ถ„์ž๋‹ค ! ๐Ÿ™‚
  • ์Œ , ์ถฉ๋Œ๋‚ฌ์„ ๋•Œ์— โ†’ ํ•ด๊ฒฐํ•˜๋Š” ๋ฒ•์€ ์—ฐ์Šต์„ ๋งŽ์ด ํ•ด๋ด์•ผํ• ๊ฒƒ๊ฐ™๋‹ค.

โœ…reset - commit ์„ ์ทจ์†Œํ•˜๊ณ  ๋Œ์•„๊ฐ€๊ณ  ์‹ถ์„ ๋•Œ , ๋ธŒ๋žœ์น˜์˜ ์ตœ์‹ ์ปค๋ฐ‹์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ

Untitled 19

  • HEAD๊ฐ€ ์ด์ œ 96~ ์„ ๊ฐ€๋ฅดํ‚จ๋‹ค. (์ตœ์‹  ์ปค๋ฐ‹)

Untitled 20

  • reset ํ•œ ๊ฒƒ์„ ์ทจ์†Œํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด git reset โ€”hard ORIG_HEAD๋ฅผ ํ•˜๋ฉด ๋จ gitstory๋ฅผ ๋ณด๋ฉด orig_head์—๋Š” git reset ํ•˜๊ธฐ ์ „ ์ตœ์‹  ์ปค๋ฐ‹์ด ๋‚จ์•„์žˆ์Šต๋‹ˆ๋‹ค.

Untitled 21

  • git reflog ๋ฅผ ํ†ตํ•ด ์ง€๊ธˆ๊นŒ์ง€ ํ–ˆ๋˜ ๊ฐ๊ฐ์˜ ์ปค๋ฐ‹๋“ค์ด ๊ธฐ๋ก๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

    ์—ฌ๊ธฐ์— HEAD@{0} ~ {6}๊นŒ์ง€ ์žˆ๋Š”๋ฐ ์ด๊ฑธ ์ด์šฉํ•ด์„œ๋„ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
    

โœ… merge & conflict

Untitled 22

Untitled 23

  • ๊ณตํ†ต์ ์ธ ๋‚ด์šฉ์ด ์žˆ๋‹ค . (์ฃผ๋กœ base๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. )

Untitled 24

  • ์ƒํ™œ์ฝ”๋”ฉ์—์„œ๋Š” kdiff3์ด๋ผ๋Š” ํˆด์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ ‡๊ฒŒ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ณ  ์ข…๋ฃŒํ•˜๋ฉด ์ž๋™์œผ๋กœ merge๊ฐ€ ๋œ๋‹ค.

โœ… 3way merge

Untitled 25

โœ… ์›๊ฒฉ์ €์žฅ์†Œ : ์›๊ฒฉ์ €์žฅ์†Œ๋ผ ํ•จ์€ ์ง€์—ญ์ €์žฅ์†Œ์™€๋Š” ๋ฐ˜๋Œ€์˜ ์˜๋ฏธ! ์ผ๋ฐ˜์ ์œผ๋กœ ์›๊ฒฉ์ €์žฅ์†Œ๋ผํ•จ์Œ ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋˜์–ด ๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค๊ณผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ

git init โ€”bare

git push ๋ช…๋ น์–ด !

โœ… git clone https : ๋กœ์ปฌ์ €์žฅ์†Œ์— ์›๊ฒฉ์ €์žฅ์†Œ์— ์žˆ์—ˆ๋˜ ๊ฒƒ์ด ๋ณต์ œ๋จ .

โœ… fork : ํฌํฌ๋ฅผ ํ†ตํ•ด ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค. ( ๋‚˜์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋˜๋ฉด์„œ ๋งˆ์Œ๋Œ€๋กœ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋จ)

โœ… Git repository

Untitled 26

  • ์›๊ฒฉ์ €์žฅ์†Œ๋ฅผ ์—ฐ๊ฒฐ์‹œํ‚จ๋‹ค. ์ด ์ฃผ์†Œ๊ฐ€ ๊ธฐ์–ตํ•˜๊ธฐ ์–ด๋ ค์šฐ๋‹ˆ origin์ด๋ผ๋Š” ๋ณ„๋ช…์„ ๋งŒ๋“ค๊ฑฐ๋‹ค. ๋ผ๋Š” ์˜๋ฏธ

Untitled 27

  • git remote ๋กœ ํ™•์ธ ! -v๋กœ ์–ด๋–ป๊ฒŒ ๋˜์žˆ๋Š”์ง€ ํ™•์ธ ! ๐Ÿ™‚

โœ… git pull

Untitled 30

  • git_home ์ด ์žˆ๊ณ  git_office๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ž.

    ( office๋Š” ํšŒ์‚ฌ์—์„œ ์“ฐ๋Š” ๊ฒƒ , home์€ ๊ฐœ์ธ pc โ†’ ๊ฐ™์€ repository ๋ฅผ cloneํ•œ ์ƒํƒœ ) 
    
  • ๋งŒ์•ฝ home์—์„œ push๋ฅผ ํ•˜๋ฉด ๊ทธ ๋‹ค์Œ๋‚  office์—์„œ๋Š” ์ „ ๋‚  ์ž‘์—…ํ•˜๋˜ ๊ฒƒ์ด ์žˆ์œผ๋ฏ€๋กœ pull์„ ํ•ด์„œ ๋•ก๊ฒจ์“ฐ๋Š” ๊ฒƒ์„ ์˜๋ฏธ โ†’ ๋ฐฑ์—…์ด ๋˜๋Š”๊ฒƒ ! ๐Ÿ˜‡ ๐Ÿ’ซ

โœ… Git Flow

Untitled 31

  1. gitFlow์—์„œ๋Š” master์—์„œ ๊ฐœ๋ฐœ์ด ์ง„ํ–‰๋˜์ง€ ์•Š๊ณ  develop์ด๋ผ๋Š” branch์—์„œ ์ง„ํ–‰๋จ

  2. ๊ฐœ๋ฐœ์„ ์ญ‰ํ•˜๋‹ค๊ฐ€ ํŠน์ •๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•ด์•ผํ•  ๋•Œ์—๋Š” feature๋ผ๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•œ๋‹ค.

  3. ๊ทธ ๋‹ค์Œ ๊ฐœ๋ฐœ์„ ์™„๋ฃŒํ•˜๋ฉด feature์— ์žˆ๋˜ ๋ธŒ๋žœ์น˜๋ฅผ develop์œผ๋กœ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๋Š” develop์œผ๋กœ ํ•ด๋‚˜๊ฐ„๋‹ค.

  4. ์ž‘์—…์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ๋ฐฐํฌํ•  ์‹œ์ ์ด ์˜จ๋‹ค. (์›น๊ณผ ๊ฐ™์€ ์˜จ๋ผ์ธ์„œ๋น„์Šค๋ผ๋ฉด ์„œ๋ฒ„์— ๋ฐ˜์˜ํ•˜๋Š” ์‹œ์  ) โ†’ ์ด ๋•Œ์— release๋ผ๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ ๋‹ค.

  5. release์—์„œ ํ•  ๋•Œ ๋ฒ„๊ทธ๋‚˜ ๋ฌธ์„œ์ž‘์—…์€ release์—์„œ ์ž‘์—…์„ ํ•˜๋‹ค๊ฐ€ ์กฐ๊ธˆ์”ฉ ์กฐ๊ธˆ์”ฉ develop ๋ธŒ๋žœ์น˜์— ํ‹ˆํ‹ˆํžˆ merge๋ฅผ ํ•จ

  6. ์ถฉ๋ถ„ํžˆ ์ž‘์—…์ด ์ž˜๋˜๊ณ  ํ…Œ์ŠคํŠธ๋„ ์ž˜๋œ๋‹ค๋ฉด ์‹ค์ œ๋กœ ์„œ๋ฒ„์— release๋ฅผ ํ•˜๋Š” ๊ทธ ์ˆœ๊ฐ„์— master๋กœ ๋ณ‘ํ•ฉํ•œ๋‹ค. ๊นƒ์— tag๋ผ๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด 1.0 ๋ฒ„์ „์˜ release๋Š” master ๋ธŒ๋žœ์น˜์˜ ์ž‡์ปค๋ฐ‹,,?์ด๋‹ค? ( ,,, ์ž‡์ปค๋ฐ‹์€ ๋ญ˜๊นŒ,,! โ†’ ์งˆ๋ฌธํ•˜๊ธฐ ) ๋˜ํ•œ ์ด๊ฒƒ์€ ๊ณ„์† ์ง„ํ–‰๋˜์–ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์— develop์—๋„ merge๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฒˆ์™ธ : hoxfixes๋ผ๋Š” ๊ฒƒ์€ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋‹ค๋ณด๋ฉด ๊ธด๊ธ‰ํ•˜๊ฒŒ ๋ฒ„๊ทธ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ๋‹ค. ์งง์€์‹œ๊ฐ„์— ์ฒ˜๋ฆฌํ•ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์–ผ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  master ๋ธŒ๋žœ์น˜๋กœ merge๋ฅผ ํ•˜๊ณ  tag๋กœ ๊ธฐ๋กํ•œ๋‹ค. hoxfixes ๋˜ํ•œ develop์—๋„ merge๋ฅผ ํ•œ๋‹ค.

Untitled 32

https://www.youtube.com/watch?v=_kxjzlH34xc&list=PLuHgQVnccGMA8iwZwrGyNXCGy2LAAsTXk&index=49

์‹ค์Šตํ•œ ๊ฒƒ

Untitled 33

  • ์ด๋Ÿฐ์‹์œผ๋กœ ํ–ˆ๋‹ค . ๐Ÿ™‚

์•„์ง ๋งŽ์ด ๋ถ€์กฑํ•˜์ง€๋งŒ git์„ ์ ์  ํ™œ์šฉํ•˜๋ฉด ํ• ์ˆ˜๋ก ์ข€๋” ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฒƒ !

์ž์ฃผ์ž์ฃผ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊ฒƒ๊ฐ™๋‹ค.

์ƒํ™œ์ฝ”๋”ฉ ์ตœ๊ณ  ใ… ใ… ใ…  ๐Ÿ˜‡ ๋„ˆ๋ฌด ์ข‹์€๊ฐ•์˜์ธ ๊ฒƒ ๊ฐ™๋‹ค.