Git

Git / Github / branch / merge / ๋ณ‘ํ•ฉ ์ถฉ๋Œ ํ•ด๊ฒฐ

yunieyunie 2023. 3. 27. 13:40

๐Ÿ’ป Git

Git์€ ์ปดํ“จํ„ฐ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๊ณ  ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋“ค ๊ฐ„์— ํ•ด๋‹น ํŒŒ์ผ ์ž‘์—…์„ ์กฐ์œจํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค.
Git์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
Git์„ ์„ค์น˜ํ•˜๊ณ  Github์— ๊ฐ€์ž…ํ•œ ํ›„ ํ„ฐ๋ฏธ๋„์— git --version์„ ์ž…๋ ฅํ•ด ์ •์ƒ์ ์œผ๋กœ git์ด ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์ž.

ํ”„๋กœ์ ํŠธ๋ฅผ git์„ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ์„ ์ž…๋ ฅํ•˜์ž.

1. git init //ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์ž‘

2. git config --global core.autocrlf true //๊ฐœํ–‰๋ฌธ์ž ์„ค์ •, mac์€ true๊ฐ€ ์•„๋‹Œ input ์ž…๋ ฅ

3. git config --global user.name 'github ์ด๋ฆ„'

4. git config --global user.email 'github ์ด๋ฉ”์ผ'

5. git config --global list //์ž…๋ ฅํ•œ ๋‚ด์šฉ ํ™•์ธํ•˜๊ธฐ, ๋น ์ ธ๋‚˜์˜ค๋ ค๋ฉด q


๐Ÿ“ Github

ํ”„๋กœ์ ํŠธ๋ฅผ github์— ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด repository๋ฅผ ๋งŒ๋“ค๊ณ  ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•˜์ž.

1. git status //๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ•ด์•ผํ•˜๋Š” ํŒŒ์ผ๋“ค ํ™•์ธ(์ƒ๋žต๊ฐ€๋Šฅ)

2. git add . //๋ชจ๋“  ํŒŒ์ผ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ถ”์ 

3. git commit -m '๋ฉ”์„ธ์ง€ ์ž…๋ ฅ' //๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ๋ฒ„์ „ ์ƒ์„ฑ

4. git log //๋‚ด์—ญ ํ™•์ธ(์ƒ๋žต๊ฐ€๋Šฅ)

5. git remote add origin ์ฃผ์†Œ๋ถ™์—ฌ๋„ฃ๊ธฐ //repository ์—ฐ๊ฒฐ(์ฒ˜์Œ ํ•œ ๋ฒˆ๋งŒ)

6. git push origin master //master๋ผ๋Š” ์ด๋ฆ„์˜ branch๋กœ ์—…๋กœ๋“œ


๐ŸŒณ Branch

ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ ํ•จ๊ป˜ํ•˜๋Š” ํŒ€์›๋“ค๊ณผ ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด branch๋ผ๋Š” ๊ฐœ๋…์„ ์ด์šฉํ•œ๋‹ค.
master๋ž€ ์ค„๊ธฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‹ค๋ฅธ ์ด๋ฆ„์˜ branch(๊ฐ€์ง€)๋ฅผ ๋งŒ๋“ค์–ด ๊ฐœ๋ฐœ ํ›„ ๋‚˜์ค‘์— merge(๋ณ‘ํ•ฉ)ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

signin์ด๋ผ๋Š” ์ด๋ฆ„์˜ ์ƒˆ๋กœ์šด branch๋ฅผ ๋งŒ๋“ค๊ณ  ์ ‘์†ํ•ด๋ณด์ž.

1. git branch //branch ๋ชฉ๋ก ํ™•์ธ, ์ฒ˜์Œ์—๋Š” master๋งŒ ์กด์žฌ

2. git branch -a //์›๊ฒฉ ์ €์žฅ์†Œ์˜ branch๋„ ํ™•์ธ

3. git branch signin // signin์ด๋ผ๋Š” ์ด๋ฆ„์˜ branch๊ฐ€ ์ƒ์„ฑ๋จ

4. git checkout signin // signin branch๋กœ ์ ‘์†

์ƒˆ๋กœ์šด branch์—์„œ ์ ‘์†ํ•˜์—ฌ ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด ๋‹ค๋ฅธ branch์—๋Š” ์˜ํ–ฅ์ด ์—†๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด signin ์—์„œ ์ƒˆ๋กœ์šด ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  ์ž‘์—…ํ•˜๋ฉด master์—์„œ๋Š” ๊ทธ ํด๋”๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค.

signin์—์„œ ์ž‘์—…ํ•œ ๊ฒƒ์„ github๋กœ ์˜ฌ๋ ค๋ณด์ž

1. git add .

2. git commit -m '๋ฉ”์„ธ์ง€ ์ž…๋ ฅ'

3. git push origin signin

github์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด branches์— master ๋ง๊ณ  signin์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.


๐Ÿงถ Merge

์ด์ œ master์™€ signin์„ mergeํ•ด๋ณด์ž

  1. github์˜ ํ•ด๋‹น repository์—์„œ pull requests ํƒญ์—์„œ new pull request ํด๋ฆญ
  2. ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” compare์„ ํด๋ฆญํ•˜์—ฌ signin ๋ธŒ๋žœ์น˜๋กœ ๋ณ€๊ฒฝ (compare:signin ์ด base:master ๋กœ ํ•ฉ์ณ์ง์„ ์˜๋ฏธ)
  3. ์•„๋ž˜์—์„œ master์™€ signin์˜ ์ฝ”๋“œ ์ฐจ์ด๋ฅผ ํ™•์ธํ•˜์ž.
  4. create pull request ํด๋ฆญ, ์ฝ”๋ฉ˜ํŠธ ์ž…๋ ฅ(์ƒ๋žต ๊ฐ€๋Šฅ) ํ›„ create pull request ํด๋ฆญ, ์•„๋ž˜์— merge pull request ํด๋ฆญ, confirm merge ํด๋ฆญ

๐Ÿ“ Clone

์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์—์„œ github์— ์˜ฌ๋ผ๊ฐ„ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ ธ์™€๋ณด์ž
ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ๋“ค์–ด๊ฐ„ ํ›„ code ํด๋ฆญ ํ›„ ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  ํ„ฐ๋ฏธ๋„์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๊ฒฝ๋กœ์— ๋“ค์–ด๊ฐ„๋‹ค.

1. git clone ์ฃผ์†Œ๋ถ™์—ฌ๋„ฃ๊ธฐ

2. dir //(mac์€ ls)ํด๋”๊ฐ€ ๋“ค์–ด์™”๋Š”์ง€ ํ™•์ธ

Tip. vscode์—์„œ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ์—ด๋ ค๋ฉด ํ„ฐ๋ฏธ๋„์—์„œ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ํŒŒ์ผ๋กœ ๊ฒฝ๋กœ์ด๋™ํ•˜์—ฌ code . ๋ฅผ ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์ฐฝ์„ ๋‹ซ๊ณ  ์—ด๋ ค๋ฉด code . -r ์ž…๋ ฅ


๐Ÿ’ฅ ๋ณ‘ํ•ฉ ์ถฉ๋Œ์‹œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ๋‚ด์šฉ์ด ๋‹ค๋ฅผ ๋•Œ push๊ฐ€ ๊ฑฐ๋ถ€๋œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค๋ฉด master branch์—์„œ A์—์„œ B๋กœ ์ˆ˜์ •ํ•˜๊ณ  ์›๊ฒฉ์ €์žฅ์†Œ์— push๋ฅผ ํ–ˆ๋Š”๋ฐ A์—์„œ C๋กœ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ push๋ฅผ ํ•œ๋‹ค๋ฉด rehjected ๊ฒฝ๊ณ ๋ฌธ์ด ๋œจ๋ฉด์„œ push๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.
์ด๋Ÿด ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด๊ฒฐํ•˜์ž.

1. git pull origin master

2. ํ˜„์žฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ๊ณผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์ €์žฅ๋œ ๋ถ€๋ถ„์—์„œ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ๋ณด์—ฌ์ฃผ๋ฉด 'ํ˜„์žฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ˆ˜๋ฝ' ๋˜๋Š” '์ˆ˜์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ˆ˜๋ฝ' ๋“ฑ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜, ์›ํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์‚ญ์ œ ๋˜๋Š” ๋‹ค๋ฅธ ์ฝ”๋“œ๋กœ ์ˆ˜์ •ํ•˜๊ณ  ์ €์žฅํ•œ๋‹ค.

3. git status //๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™•์ธ(์ƒ๋žต๊ฐ€๋Šฅ)

4. git add .

5. git commit -m '๋ฉ”์„ธ์ง€ ์ž…๋ ฅ'

6. git push origin master

github์—์„œ ์ˆ˜์ •๋œ ๋ถ€๋ถ„์„ ํ™•์ธํ•˜์ž.