Git

Miog Yangยท2022๋…„ 10์›” 14์ผ
0
post-thumbnail

git install

Mac : Homebrew์„ค์น˜ํ›„ brew install git

๐Ÿ“Œ ์„ค์น˜์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • ์„ค์น˜์‹œ ์ž…๋ ฅํ•ด์•ผํ•˜๋Š” password๋Š” ๋งฅ๋ถ๋น„๋ฒˆ
  • ์„ค์น˜ํ›„ git config --global init.defaultBranch main (๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜ master => main์œผ๋กœ ๋ฐ”๊ฟˆ)
  • git config --global core.editor "code --wait" (๊ธฐ๋ณธ ์—๋””ํ„ฐ vscode๋กœ ๋ณ€๊ฒฝ)

git user ์…‹ํŒ…

git config --global user.email "์ด๋ฉ”์ผ"
git config --global user.name "์ด๋ฆ„"

1. Basic

1) ์ €์žฅ์†Œ ์—ฐ๊ฒฐ

git init : ์ €์žฅ์†Œ ์ดˆ๊ธฐํ™”
git remote add origin ๋ ˆํฌ์ง€ํ† ๋ฆฌ์ฃผ์†Œ : ์ €์žฅ์†Œ ์—ฐ๊ฒฐ
git branch -M main : master => main์œผ๋กœ ๋ณ€๊ฒฝ

2) ๋ฒ„์ „๋งŒ๋“ค๊ธฐ

  • git add .
    ์ž‘์—…์ €์žฅํ•˜๊ธฐ: git add 'ํŒŒ์ผ๋ช…'์œผ๋กœ ๊ฐ๊ฐ์˜ ํŒŒ์ผ์„ ์ €์žฅ ๋˜๋Š” '.'์œผ๋กœ ์ „์ฒด ์ €์žฅ
  • git commit -m '์ž‘์—…๊ธฐ๋ก๋ฉ”์„ธ์ง€'
    ๋ฒ„์ „์ƒ์„ฑ, ๊ธฐ๋Šฅ์ถ”๊ฐ€ ๋˜๋Š” ์ˆ˜์ •: ์ฝ”๋“œ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์‹ถ์„๋•Œ commit ์‚ฌ์šฉ.

์ž‘์—… => staging area => repository(์ €์žฅ์†Œ)

  • staging: ์ž‘์—…์„ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๋ฅด๋Š” ํ–‰์œ„("stagingํ•œ๋‹ค"๋ผ๊ณ ํ•จ)

git log : ์ปค๋ฐ‹ํ•œ ๊ธฐ๋ก๋“ค ํ™•์ธ

  • commit ๋’ค์— ์•„์ด๋”” ์ง€์ •์œผ๋กœ ์ทจ์†Œ ํ• ์ˆ˜๋„ ์žˆ๋‹ค.

3) merge

  • 3-way merge : ๊ฐ ๋ธŒ๋žœ์น˜์— ์‹ ๊ทœ commit์ด ์žˆ๋Š” ๊ฒฝ์šฐ
    ์ƒˆ๋กœ์šด commit์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ค€๋‹ค.

๐Ÿ“Œ ์ถœ์ฒ˜ : codingapple

  • fast-forward merge : ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜์—๋งŒ commit์ด ์žˆ๋Š” ์ƒํƒœ
    ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜์— main์œผ๋กœ ์ง€์ •

๐Ÿ“Œ ์ถœ์ฒ˜ : codingapple

๋ธŒ๋žœ์น˜ ์‚ญ์ œ
git branch -d ๋ธŒ๋žœ์น˜๋ช… : ๋ณ‘ํ•ฉ์ด ์™„๋ฃŒ๋œ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ์‹œ
git branch -D ๋ธŒ๋žœ์น˜๋ช… : ๋ณ‘ํ•ฉ์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ์‹œ

localํ™˜๊ฒฝ์—์„œ ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ
git branch ๋ธŒ๋žœ์น˜๋ช… : ๋ธŒ๋žœ์น˜๋งŒ๋“ค๊ธฐ
git switch ๋ธŒ๋žœ์น˜๋ช… / git checkout ๋ธŒ๋žœ์น˜๋ช… : ๋ธŒ๋žœ์น˜์ด๋™
git checkout -b ๋ธŒ๋žœ์น˜๋ช… : ๋งŒ๋“  ๋ธŒ๋žœ์น˜๋กœ ์ด๋™

2. ๋ธŒ๋žœ์น˜ ์ „๋žต

1) Gitflow

  • ๊ฐœ๋ฐœํ›„ ์ƒˆ๋กœ์šด๋ฒ„์ „์ถœ์‹œ

๐Ÿ“Œ ์ถœ์ฒ˜ : codingapple

  • main ๋ธŒ๋žœ์น˜ :

  • develop ๋ธŒ๋žœ์น˜ : ํ”„๋กœ์ ํŠธ ์‚ฌ๋ณธ๋ธŒ๋žœ์น˜, ์ƒˆ๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ํ™•์ธํ•œ๋‹ค.

  • feature ๋ธŒ๋žœ์น˜ : develop์— ๊ธฐ๋Šฅ๋ณ„ ์ถ”๊ฐ€์šฉ์œผ๋กœ ์‚ฌ์šฉ (feature / ๊ธฐ๋Šฅ)

  • hotfix ๋ธŒ๋žœ์น˜ : ๊ฐœ๋ฐœ์™„๋ฃŒํ›„ ์ƒ๊ธด ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐ์šฉ์œผ๋กœ ์‚ฌ์šฉ

(๋ฉ”์ธ์—์„œ ๋ธŒ๋žœ์น˜์ƒ์„ฑํ•˜์—ฌ ๋ฒ„๊ทธํ•ด๊ฒฐ=> develop๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ›„ ๋ฉ”์ธ์œผ๋กœ ๊ถŒ์žฅ)

  • release ๋ธŒ๋žœ์น˜ : test์šฉ

2) Trunk-based

  • ์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ๋ฐฐํฌ : main๋ธŒ๋žœ์น˜์™€ feature๋ธŒ๋žœ์น˜๋งŒ ์šด์˜

๐Ÿ“Œ ์ถœ์ฒ˜ : codingapple



โœ๏ธ

๊ฐ„๋‹จํ•˜๊ฒŒ ๋ธŒ๋žœ์น˜ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜๋‹ค.
์ฒ˜์Œ์— git์„ ์‚ฌ์šฉํ–ˆ์„๋•Œ๋Š” ์ €์žฅ์†Œ ์—ฐ๊ฒฐ๊ณผ add . , commit , push , merge์—๋งŒ ์‹ ๊ฒฝ์„ ์ผ๋Š”๋ฐ
ํŒ€ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ gitflow๋‚˜ ์ฝ”๋“œ ์ปจ๋ฒค์…˜๋“ฑ ์‹ ๊ฒฝ์จ์•ผํ•˜๋Š” ๋ถ€๋ถ„๋“ค์„ ๋ฐฐ์šฐ๊ฒŒ ๋˜์—ˆ๋‹ค.
ํŒ€ํ”„๋กœ์ ํŠธ๋Š” ๋๋‚ฌ์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ ํ† ์ดํ”„๋กœ์ ํŠธ๋ฅผ ํ• ๋•Œ๋„ ์‹ ๊ฒฝ์“ฐ๋ฉด์„œ ํ•ด์•ผ ์ ์‘์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค.
๊ธฐ๋ณธ์ ์ธ ์ฝ”๋“œ์ปจ๋ฒค์…˜๊ณผ gitflow๋Š” ํ•ญ์‹œ ์ ์šฉ!!!

profile
์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์‚ฌ์ „ & ํ”„๋ก ํŠธ์—”๋“œ ๋„์ „๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€