[TIL] 2024-12-31_Git ํ˜‘์—…

Yuriยท2024๋…„ 12์›” 31์ผ

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
18/59
post-thumbnail

1. ๋ธŒ๋žœ์น˜ ํ™œ์šฉํ•˜๊ธฐ

๋ธŒ๋žœ์น˜

  • ๋ธŒ๋žœ์น˜(branch): ๊ฐ€์ง€, ๋ถ„๊ธฐ == ๋ณต์‚ฌ๋ณธ
  • git branch ๋ธŒ๋žœ์น˜์ด๋ฆ„ : ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
  • git branch : ๋ธŒ๋žœ์น˜ ํ™•์ธ ๋ช…๋ น์–ด (์›๋ž˜ ํ„ฐ๋ฏธ๋„๋กœ ๋น ์ ธ๋‚˜์˜ค๋ ค๋ฉด 'q' ์ž…๋ ฅ)

๋ธŒ๋žœ์น˜ ์ด๋™ ๋ช…๋ น์–ด

  • git switch ๋ธŒ๋žœ์น˜์ด๋ฆ„
  • git checkout ๋ธŒ๋žœ์น˜์ด๋ฆ„ : '์ฒดํฌ์•„์›ƒ'์ด๋ผ๋Š” ๋ช…๋ น์–ด๊ฐ€ ๋ถˆ๋ช…ํ™•ํ•˜์—ฌ ํ˜ผ๋ž€

๐Ÿฏ ๋ธŒ๋žœ์น˜ ํ•œ ๋ฒˆ์— ์ƒ์„ฑ & ์ด๋™

  • git switch -c ๋ธŒ๋žœ์น˜์ด๋ฆ„
  • git checkout -b ๋ธŒ๋žœ์น˜์ด๋ฆ„

๐Ÿ’พ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜์—์„œ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ ์ €์žฅ

  • git add .
  • git commit -m "๋ฉ”์„ธ์ง€"

๐Ÿ‘€ login ๋ธŒ๋žœ์น˜์—์„œ main ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•˜๋ฉด ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค.

  • login โ†’ main ์œผ๋กœ ํ•ฉ์น˜๊ธฐ

    1. git switch ์ตœ์ข… ๋ธŒ๋žœ์น˜์ด๋ฆ„(main)
    2. git merge ํ•ฉ์น  ๋ธŒ๋žœ์น˜์ด๋ฆ„(login)
  • main ์— ํ•ฉ์น˜๋Š” ์ด์œ  : main ๋ธŒ๋žœ์น˜ = ์ตœ์ข… ๋ธŒ๋žœ์น˜
    ๊ฐ์ž ๋ธŒ๋žœ์น˜์—์„œ ๊ฐœ๋ฐœํ•œ ๊ธฐ๋Šฅ์„ ์ตœ์ข…์ ์œผ๋กœ main ๋ธŒ๋žœ์น˜์— ํ•ฉ์นœ๋‹ค. (ํ˜‘์—…)

์‚ฌ์‹ค git merge ๋Š” ํ˜„์—…์—์„œ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. โ†’ ํ„ฐ๋ฏธ๋„ ๋ง๊ณ  github(์˜จ๋ผ์ธ ์ €์žฅ์†Œ)์—์„œ ํ•ฉ์นœ๋‹ค.

2. Pull Request(PR) ํ™œ์šฉํ•˜๊ธฐ

  • Github์—์„œ ํ•ฉ์น˜๋Š” ์ด์œ ?
    ์ฝ”๋“œ ๋น„๊ต ๊ฐ€๋Šฅ (์ฝ”๋“œ ๋ฆฌ๋ทฐ) : ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Pull: ๋‹น๊ฒจ์„œ ํ•ฉ์น˜๋Š” ๊ฒƒ(merge) + Request: ์š”์ฒญํ•˜๋‹ค

๐Ÿ”™ ๋‹ค์‹œ login ๋ธŒ๋žœ์น˜์—์„œ ์ˆ˜์ •, ์ €์žฅํ•œ ์ƒํƒœ์—์„œ main์— ํ•ฉ์น˜๊ธฐ ์ „ ์ƒํƒœ

  • git push origin ๋ธŒ๋žœ์น˜๋ช…
  • github์—์„œ [Compare & Pull Request]
    ์ขŒ์ธก ์ƒ๋‹จ base: main โ† compare:login : Files changed ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™•์ธ
  • [Merge pull request] > [Comfirm merge] : ํ•ฉ์น˜๊ธฐ ํ™•์ธ

โœจ github์— ๊ถŒํ•œ ์„ค์ •์œผ๋กœ Contributors์—๊ฒŒ pull request ์— merge ๊ถŒํ•œ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

  • git pull origin main : Github ์ฝ”๋“œ ๋ฐ˜์˜

์ •๋ฆฌ

1. ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ด๋™
2. ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋ฐ ์ฝ”๋“œ ์ €์žฅ
3. ์ฝ”๋“œ ์—…๋กœ๋“œ ๋ฐ Pull Request ์ƒ์„ฑ
4. github์—์„œ merge
5. ๋‚ด ๋กœ์ปฌ์—๋„ ๋ฐ˜์˜ ex) git pull origin main

Main ๋ธŒ๋žœ์น˜ ๋จธ์ง€์˜ ๋ฌธ์ œ์ 

Main ๋ธŒ๋žœ์น˜ === ๋ฐฐํฌ์šฉ
Main์€ ๋ณดํ†ต ์‹ค์ œ ๊ณ ๊ฐ์ด ์ด์šฉํ•˜๋Š” ์„œ๋น„์Šค

๐Ÿšจ ๋ฌธ์ œ์  1) ์™„๋ฒฝํ•˜๊ฒŒ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœํ•ด์•ผ merge ๊ฐ€๋Šฅ

  • main โ† merge โ† (ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ)
  • ์ž‘์€ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜์—ฌ ํ•ฉ์น˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๋ฉฐ ๋””๋ฒ„๊น…

โœ… ํ•ด๊ฒฐ์ฑ… 1) ๊ฐœ๋ฐœ์šฉ ๋ธŒ๋žœ์น˜

๐Ÿšจ ๋ฌธ์ œ์  2) ๊ทธ๋ƒฅ ํ•ฉ์น˜๋ฉด ์œ„ํ—˜ํ•จ

๊ฐ์ž ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์—์„œ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ๊ฐ™์€ ๋ณ€์ˆ˜๋ช…(String name)์„ ์‚ฌ์šฉ
โ†’ ํ˜ผ์ž ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ์—๋Ÿฌ๊ฐ€ ์—†์—ˆ์ง€๋งŒ ํ•ฉ์น˜๊ณ  ๋‚˜๋‹ˆ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

โœ… ํ•ด๊ฒฐ์ฑ… 2) ๋กœ์ปฌ์—์„œ ๋จผ์ € ํ…Œ์ŠคํŠธ


3. ํ˜‘์—… ์‹ค์ „ ๊ฐ€์ด๋“œ

1๏ธโƒฃ. ์ดˆ๊ธฐ ์„ธํŒ…

1. ํŒ€์žฅ: ์ดˆ๊ธฐ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ github ์—…๋กœ๋“œ

a. ํด๋” ์ƒ์„ฑ
b. ์ดˆ๊ธฐ ์ฝ”๋“œ ์ž‘์„ฑ
c. git init, add, commit
d. github ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ
e. github ์—…๋กœ๋“œ (git push)

2. ํŒ€์žฅ: dev(ํ˜น์€ develop) ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ

a. git swtich -c dev (๋กœ์ปฌ์—์„œ dev ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ)
b. git push origin dev (github์—๋„ ๋ฐ˜์˜)

3. Github ์—์„œ dev ๋ธŒ๋žœ์น˜๋ฅผ default๋กœ ์„ค์ •

  • Settings > General > Default branch
    โ†’ dev [Update]: main์œผ๋กœ ๋จธ์ง€ํ•˜๋Š” ์‹ค์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค

4. ํŒ€์›๋“ค์„ Collaborator๋กœ ๋“ฑ๋ก

5. ํŒ€์› : git clone ํ•˜๊ธฐ

  • ์ž‘์—… ํด๋” ์œ„์น˜์—์„œ ํ„ฐ๋ฏธ๋„ ์—ด๊ธฐ
  • git clone ์ฃผ์†Œ .

2๏ธโƒฃ. ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์‹œ์ž‘

1. ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

  • git switch -c feature/signup

2. Pull Request ์ƒ์„ฑ

์ฝ”๋“œ ์ €์žฅ ๋ฐ ์—…๋กœ๋“œ

  • git add.
  • git commit -m ""
  • git push origin ๋ธŒ๋žœ์น˜๋ช…

3. ์ฝ”๋“œ ์ž‘์„ฑ์ž: ๋ฆฌ๋ทฐ ์š”์ฒญํ•˜๊ธฐ

  • [Reviewers] : Collaborator ์„ ํƒํ•˜์—ฌ ์š”์ฒญ โ†’ ๐Ÿ”” ํŒ€์›์—๊ฒŒ ๋ณ„๋„๋กœ ์š”์ฒญ ์•Œ๋ ค์ฃผ๊ธฐ
  • [Start your review]
    • Comment : ๋ฆฌ๋ทฐ ์ž‘์„ฑ โ†’ ์˜์—ญ๋งˆ๋‹ค ์ง€์ •ํ•˜์—ฌ ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๊ฐ€๋Šฅ
    • Approve : ์Šน์ธ
    • Request changes : ๋ณ€๊ฒฝ ์š”์ฒญ
  • [Finish your review]

4. ์ฝ”๋“œ ๋ฆฌ๋ทฐ์–ด: ๋ฆฌ๋ทฐํ•˜๊ธฐ

PR ๊ถŒํ•œ : Confirm merge

5. ํ•ฉ์น˜๊ธฐ ์ „ ๋‚ด ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์—์„œ ์ถฉ๋Œ ํ™•์ธ

  • ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜์—์„œ git pull origin dev ํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์ง„ํ–‰
    ์ถฉ๋Œ์ด ๋‚˜๋ฉด github์—์„œ ํ•ด๊ฒฐํ•˜์ง€ ๋ง๊ณ  ์ถฉ๋Œ๋‚œ ๋ธŒ๋žœ์น˜๋ฅผ ํ•œ๋ฒˆ pull ๋ฐ›์•„์™€์„œ ์ˆ˜์ • ํ›„ ๋‹ค์‹œ push ํ•˜๊ธฐ

3๏ธโƒฃ. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

1. ๋‚ด ๋กœ์ปฌ์— dev ์—๋„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฐ˜์˜

a. dev ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ (git checkout dev ํ˜น์€ git switch dev)
b. git pull origin dev

2. ๋‹ค์Œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

a. ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ฝ”๋“œ ์ž‘์„ฑ
b. git add, commit, push
c. Pull request ์ƒ์„ฑ ๋ฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ
d. ๋‚ด ๋กœ์ปฌ์—์„œ ์ถฉ๋Œ ํ•ด๊ฒฐ ๋ฐ ํ…Œ์ŠคํŠธ
e. ์ฝ”๋“œ ์—…๋กœ๋“œ ๋ฐ merge

+) ์ถ”๊ฐ€

  • .gitignore ํ™˜๊ฒฝ ์„ธํŒ…
    https://www.toptal.com/developers/gitignore/
  • git stash, git reset & revert ๋ช…๋ น์–ด
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ๋Œ€์‹  git token ์„ค์ •ํ•˜๋Š” ๋ฒ•

๐Ÿ“ TO-DO

  1. Java ๋ฌธ๋ฒ• ์ข…ํ•ฉ๋ฐ˜ ์ˆ˜๊ฐ•
  2. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ์นดํƒ€
  3. ๊ธฐ์ˆ  ์•„์นด์ด๋ธŒ ์ •๋ฆฌ
  4. ์šด๋™ํ•˜๊ธฐ ๐Ÿƒ

๐Ÿ’ญ Diary

1์ฃผ์ฐจ๊ฐ€ ๋๋‚˜๊ณ  2์ฃผ์ฐจ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ ์ฃผ์ฐจ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค. ๊ฐœ์ธ ํ•™์Šต ์œ„์ฃผ๋กœ ์ง„ํ–‰๋  ์˜ˆ์ •์ด์ง€๋งŒ ์ง‘์ค‘ ๋†“์ง€ ์•Š๊ณ  ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค. ํ•˜๋ฃจ์— ๋ชจ๋“  ๊ฐ•์˜๋ฅผ ๋ชจ๋‘ ๋“ค์œผ๋ ค๋‹ˆ ์ž๋ฐ” ๊ฐ•์˜ ์ดˆ๋ฐ˜ ๋ถ€๋ถ„์€ ์ง‘์ค‘์ด ์–ด๋ ต๋‹ค. ๊ณต๋ถ€์˜ ๋ฐ€๋„๋ฅผ ๋†’์—ฌ์•ผ ํ•˜๋Š”๋ฐ ์ •์‹  ๋ฐ”์ง ์ฐจ๋ฆฌ์ž ๐Ÿฅฒ

๊ทธ๋ฆฌ๊ณ  ํŠน๊ฐ•์œผ๋กœ git ๊ธฐ์ดˆ 2์ฐจ ํŠน๊ฐ•์—์„œ git์„ ํ˜„์—…์—์„œ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š”์ง€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ํ˜‘์—…ํ•  ๋•Œ ๋ฒ„์ „ ๊ด€๋ฆฌ์™€ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 1์ฃผ์ฐจ์—์„œ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ์ž˜ ์•Œ๊ณ  ์žˆ์—ˆ๋”๋ผ๋ฉด ํŒ€์›๋“ค์—๊ฒŒ Merge ๊ถŒํ•œ์„ ์ฃผ์–ด ๋‹ค ๊ฐ™์ด ์‹ค์Šตํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ์„ ํ…๋ฐ ๊ทธ ์ ์ด ์กฐ๊ธˆ ์•„์‰ฌ์› ๋‹ค. ๋‹ค์Œ๋ฒˆ์—๋Š” Dev ๋ธŒ๋žœ์น˜๋ฅผ ๋”ฐ๋กœ ๋‘๊ณ  ํŒ€ํ”Œ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ข€ ๋” ํ˜„์—…์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‹ค์Šตํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.โœจ

profile
์•ˆ๋…•ํ•˜์„ธ์š” :)

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