๐Ÿ’ฅ ์ €์„ธ์ƒ ๊นƒํ„ฐ๋”” 2์ผ์ฐจ (2)

9032 ๋‹จ์–ด gitgit

Index

  1. .gitignore ํŒŒ์ผ์€ ๋ญ”๊ฐ€์š”?
  2. ammend, squash : ์ปค๋ฐ‹ ๊ฐ–๊ณ  ๋†€๊ธฐ
  3. stash : working tree๋ฅผ ์ž ๊น๋งŒ ์ €์žฅ
  4. branch์™€ checkout
  5. branch ๋ณ‘ํ•ฉ 1: merge
  6. branch ๋ณ‘ํ•ฉ 2: rebase
  7. branch-์ „๋žต
  8. commit์˜ ์ ์ • ๋‹จ์œ„์™€ ํ˜‘์—…, ๋ฉ”์‹œ์ง€

5. branch ๋ณ‘ํ•ฉ 1: merge

merge conflict?

Merge conflicts happen when you merge branches that have competing commits, and Git needs your help to decide which changes to incorporate in the final merge.
- About merge conflicts, github docs

merge conflict๋Š” competing commit์„ ๊ฐ€์ง€๋Š” ๋ธŒ๋žœ์น˜๋“ค์„ ๋ณ‘ํ•ฉํ•˜๋ คํ•  ๋•Œ ์ผ์–ด๋‚œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์ข… ๋ณ‘ํ•ฉ์—์„œ ํฌํ•จํ•ด์•ผํ•˜๋Š” ์ปค๋ฐ‹์„ ๊ฒฐ์ •ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

Competing Commit์€

  1. ๊ฐ™์€ ํŒŒ์ผ์˜ ๊ฐ™์€ ๋ผ์ธ์„ ๋‹ค๋ฅด๊ฒŒ ๋ณ€๊ฒฝํ•œ ์‚ฌํ•ญ์ด ์žˆ๊ฑฐ๋‚˜,
  2. ํ•œ ๋ธŒ๋žœ์น˜๊ฐ€ ํŒŒ์ผ์„ ์ˆ˜์ •ํ–ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๊ฐ€ ๊ทธ ํŒŒ์ผ์„ ์‚ญ์ œํ•œ ๊ฒฝ์šฐ

์— ์ƒ๊ธด๋‹ค.

Resolve merge conflict

Git์˜ merge ๋ฐฉ์‹์— ๋”ฐ๋ฅด๋ฉด, merge conflict๊ฐ€ ์ผ์–ด๋‚ฌ์„ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์–ด๋–ค ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์— ํฌํ•จ์‹œํ‚ฌ์ง€ ๊ฒฐ์ •ํ•ด์•ผํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋งŒ์•ฝ ๋‚˜์™€ ๋˜ ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ฐ™์€ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘˜ ๋‹ค styleguide.md ๋ผ๋Š” ํŒŒ์ผ์˜ ๋™์ผ ๋ผ์ธ์„ ์ˆ˜์ •ํ•œ๋‹ค๋ฉด, ์ด ๋‘ ๋ธŒ๋žœ์น˜๋“ค์„ ๋ณ‘ํ•ฉํ•˜๋ ค ํ•  ๋•Œ ์ปจํ”Œ๋ฆญํŠธ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค. ์ด ๋•Œ ์šฐ๋ฆฌ๋Š”

  1. Git bash๋ฅผ ์—ด๊ณ  ํ•ด๋‹น ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ์ด๋™ํ•œ๋‹ค.

    cd _REPOSITORY-NAME_
  2. git status๋กœ merge conflict ์— ์˜ํ–ฅ๋ฐ›์€ ํŒŒ์ผ๋“ค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณธ๋‹ค. ์ด ์˜ˆ์ œ์—์„œ๋Š” styleguide.md ๊ฐ€ ๊ทธ๋Ÿฌํ•œ ํŒŒ์ผ์ด๋‹ค.

    $ git status
    > # On branch branch-b
    > # You have unmerged paths.
    > #   (fix conflicts and run "git commit")
    > #
    > # Unmerged paths:
    > #   (use "git add ..." to mark resolution)
    > #
    > # both modified:      styleguide.md
    > #
    > no changes added to commit (use "git add" and/or "git commit -a")
  3. ํ•ด๋‹น ํŒŒ์ผ์„ ์›ํ•˜๋Š” ์—๋””ํ„ฐ๋กœ ์—ฐ๋‹ค.

  4. ํŒŒ์ผ์„ ์—ด๊ณ ๋‚˜์„œ, merge conflict๊ฐ€ ์ฒ˜์Œ ๋ฐœ์ƒํ•œ ๋ถ€๋ถ„์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ <<<<<<<๋ฅผ ๊ฒ€์ƒ‰ํ•ด๋ณธ๋‹ค. ๊ทธ ๋ถ€๋ถ„์œผ๋กœ ์ด๋™์„ ํ•˜๋ฉด

    ```bash
    If you have questions, please
    <<<<<<< HEAD
    open an issue
    =======
    ask your question in IRC.
    >>>>>>> branch-a
    ```

    ์ด๋Ÿฐ ์‹์œผ๋กœ <<<<<<< ๋’ค์— ์จ์žˆ๋Š” ์ด๋ฆ„(HEAD) base branch์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๊ณ , ======= ๋กœ ๊ตฌ๋ถ„๋˜์–ด์žˆ๋Š” ๋’ท๋ถ€๋ถ„์€ >>>>>>> ๋’ค์— ์จ์žˆ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ branch์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์˜ˆ์ œ์—์„œ๋Š” ํ•œ ์‚ฌ๋žŒ์ด "open an issue"๋ผ๊ณ  base ๋˜๋Š” HEAD ๋ธŒ๋žœ์น˜์—์„œ ๋ณ€๊ฒฝ์„ ํ•œ๊ฒƒ์ด๊ณ , ๋‹ค๋ฅธ ์‚ฌ๋žŒ์€ ๊ฐ™์€ ์ค„์—์„œ "ask your question in IRC" branch-a๋ผ๋Š” ๋ธŒ๋žœ์น˜์—์„œ ๋ณ€๊ฒฝ์„ ํ•œ ๊ฒƒ์ด๋‹ค.

  5. ์ปจํ”Œ๋ฆญํŠธ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์œ„์˜ ์ถฉ๋Œ์‚ฌํ•ญ๋“ค์„ ๋‹ค ์ง€์›Œ๋ฒ„๋ฆฌ๊ณ  ์›ํ•˜๋Š” ๋‚ด์šฉ์„ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

๊นƒํฌ๋ผ์ผ„์—์„œ์˜ ์˜ˆ์‹œ๋ฅผ ๋งŒ๋“ค์–ด๋ดค๋‹ค.
์ผ๋‹จ ๋ธŒ๋žœ์น˜๋Š” master์™€ mergeTest ๊ฐ€ ์žˆ๊ณ , conflictTest๋ผ๋Š” ํŒŒ์ผ์˜ ๋™์ผ๋ผ์ธ์„ ๊ฐ์ž ๋‹ค๋ฅด๊ฒŒ ์ˆ˜์ •ํ•˜๊ณ  ์ปค๋ฐ‹ํ–ˆ๋‹ค.

๊ทธ ํ›„ master๋ธŒ๋žœ์น˜์—์„œ mergeTest ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ

๋‹ค์Œ๊ณผ ๊ฐ™์ด conflict error ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.

์˜ค๋ฅธ์ชฝ ํŒจ๋„์˜ ConflictedFiles ์˜ conflictTest๋ฅผ ๋”๋ธ”ํด๋ฆญํ•˜๋‹ˆ๊นŒ ์•„๋ž˜์ฒ˜๋Ÿผ ์ƒˆ๋กœ์šด ์ฐฝ์ด ๋–ด๋‹ค! ์ถฉ๋Œํ•˜๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์„ ๋ณด์—ฌ์ฃผ๋Š” ์ฐฝ์ด์—ˆ๋‹ค.

๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค ์ค‘์— ์›ํ•˜๋Š” ๊ฒƒ์„ ์ถ”๊ฐ€ Result์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ด๋Ÿฐ์‹์œผ๋กœ ๐Ÿ˜ƒ

๋‹ค ํ–ˆ์œผ๋ฉด ์šฐ์ธก ์ƒ๋‹จ์˜ save ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ ๋‚˜์„  ์ด์ „ ํ™”๋ฉด์œผ๋กœ ๋Œ์•„์˜ค๊ฒŒ ๋˜๋Š”๋ฐ, ํŒจ๋„์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๋€Œ์–ด์žˆ์—ˆ๋‹ค. ์ถฉ๋Œ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ–ˆ์œผ๋‹ˆ ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์„ ๋งŒ๋“ค๊ณ , merge ํ•ด์ฃผ์—ˆ๋‹ค.

merge conflict ํ•ด๊ฒฐ๋„ ๊นƒํฌ๋ผ์ผ„์œผ๋กœ ํ•˜๋ฉด ๋„ˆ๋ฌด ์‰ฝ๋‹น ๐Ÿ’–

6. branch ๋ณ‘ํ•ฉ 2: rebase

๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ ์ปค๋งจ๋“œ์—๋Š” merge ๋ง๊ณ ๋„, rebase ๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. merge๋ž‘์€ ๋ฐฉ์‹์ด ์กฐ๊ธˆ ๋‹ค๋ฅธ๋ฐ! ์ง€๊ธˆ๋ถ€ํ„ฐ ์‚ดํŽด๋ณด์ž ๐Ÿคฉ

merge ์™€ rebase

์•„๋ž˜ ์‚ฌ์ง„์„ ๋ณด๊ณ  ์ฐจ์ด๋ฅผ ์„ค๋ช…์„ ํ•ด์ฃผ์‹ ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ์— ๋งค์šฐ ์ข‹์•˜๋‹ค.

merge๋ฅผ ๋ณด๋ฉด, ์ด๋ฏธ์ง€์—์„œ๋Š” master ๋ธŒ๋žœ์น˜์— feature ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•ด๋„ feature ๋ธŒ๋žœ์น˜์˜ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์›๋ž˜ ์œ„์น˜์—, ์›๋ž˜ ๋ชจ์Šต ๊ทธ๋Œ€๋กœ ๋‚จ์•„์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ rebase์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด, feature ๋ธŒ๋žœ์น˜์˜ base ์ปค๋ฐ‹์ด master ์˜ ์ตœ์‹  ์ปค๋ฐ‹์ด ๋˜๊ณ , feature ๋ธŒ๋žœ์น˜์˜ ์ปค๋ฐ‹๋“ค์ด master์˜ ์ตœ์‹  ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์„ ๋ฐ˜์˜ํ•˜๋Š”(?) ์ปค๋ฐ‹์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋˜๋‹ค๋ฅธ ์ฐจ์ด๋Š”, ์˜ˆ์‹œ๋กœ ํ•˜๋ฉด

master์— feature ๋ฅผ mergeํ•  ๋•Œ๋Š”

$ git checkout master
$ git merge feature

์ด๋ ‡๊ฒŒ master ๋ธŒ๋žœ์น˜์—์„œ merge๋ฅผ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ,

feature์˜ base commit์„ master๋กœ rebaseํ•  ๋•Œ๋Š”

$ git checkout feature
$ git rebase master

์ด๋Ÿฐ ์‹์œผ๋กœ feature ๋ธŒ๋žœ์น˜์—์„œ rebase๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.

rebase์˜ ์žฅ๋‹จ์ 

์ฐจ์ด๋Š” ์•Œ๊ฒ ๊ณ  ๊ทธ๋Ÿผ rebase๋ฅผ ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋ณด๋ฉด,

  • ๋‹จ์ˆœํ•œ ํžˆ์Šคํ† ๋ฆฌ
  • ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐ™์€ ๋ธŒ๋žœ์น˜๋ฅผ ๊ณต์œ ํ•  ๋•Œ ์ปค๋ฐ‹์„ ํ•ฉ์น˜๋Š” ๊ฐ€์žฅ ์ง๊ด€์ ์ด๊ณ  ๊น”๋”ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

๋‹จ์ ์œผ๋กœ๋Š”

  • ์ถฉ๋Œ์ƒํ™ฉ์—์„œ ๋‹ค์†Œ ๋ณต์žกํ•˜๋‹ค. ์ปค๋ฐ‹ ์ˆœ์„œ๋Œ€๋กœ Rebase๋ฅผ ํ•˜๋Š”๋ฐ, ๊ฐ ์ปค๋ฐ‹๋งˆ๋‹ค ์ถฉ๋Œ ํ•ด์†Œ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ํ•ด๋‹น ์ปค๋ฐ‹๋“ค์„ ๋‹ค๋ฅธ ๊ณณ์— ํ‘ธ์‹œํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋‹ค์‹œ ์“ฐ๋Š” ๊ฒƒ์— ๋ถ€์ž‘์šฉ์ด ๋ฐœ์ƒํ•œ๋‹ค. ๐Ÿ‘‰๐Ÿป ์ด๋ฏธ push ํ–ˆ๋‹ค๋ฉด rebase ํ›„ ํ‘ธ์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๊ฒฐ๋ก 

rebase์™€ merge ๋ฅผ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ž˜ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

  1. ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐ™์€ ๋ธŒ๋žœ์น˜๋ฅผ ๊ณต์œ ํ•  ๋•Œ๋Š” pull & rebase ๊ฐ€ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š”๋ฐ ์ข‹๋‹ค.
  2. ์™„๋ฃŒ๋œ ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜๋ฅผ ํ•ฉ์น  ๋•Œ๋Š” merge๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  3. ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜์— ๋ถ€๋ชจ ๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
    • ๋ธŒ๋žœ์น˜๋ฅผ ๋‹ค๋ฅธ ๊ณณ์— pushํ•œ ์ ์ด ์—†์„ ๋•Œ ๐Ÿ‘‰๐Ÿป rebase
    • Git์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด ๊ธฐ๋Šฅ๋ธŒ๋žœ์น˜๋ฅผ ์ฒดํฌ์•„์›ƒํ•  ์ผ์ด ์—†์„ ๊ฑฐ๋ผ ํ™•์‹  ํ•  ๋•Œ ๐Ÿ‘‰๐Ÿป rebase
    • ์ด์™ธ์˜ ์ƒํ™ฉ ๐Ÿ‘‰๐Ÿป merge

7. branch-์ „๋žต

๋Œ€ํ‘œ์ ์ธ ๋ธŒ๋žœ์นญ ์ „๋žต์œผ๋กœ๋Š”

  • Git-flow
  • GitHub-flow
    ๊ฐ€ ์žˆ๋‹ค.

1. Git-flow

Git-flow๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ํฌ๊ฒŒ ๋„ค ๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„์–ด ๊ฐœ๋ฐœํ•˜๋Š” ์ „๋žต์ด๋‹ค.

  • Main branch
  • Feature branch (Topic branch)
  • Release branch
  • Hotfix branch

๊ฐ€์žฅ ์ค‘์‹ฌ์ด ๋˜๋Š” ๋ธŒ๋žœ์น˜๋Š” main ๋ธŒ๋žœ์น˜์ด๋ฉฐ, ๋จธ์ง€๋œ feature, release, hotfix ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œํ•œ๋‹ค.

main branch

master

  • ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋งŒ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ธŒ๋žœ์น˜

develop

  • ๋‹ค์Œ์— ๋ฐฐํฌํ•  ๊ฒƒ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • develop ๋ธŒ๋žœ์น˜๋Š” ํ†ตํ•ฉ ๋ธŒ๋žœ์น˜์˜ ์—ญํ• ์„ ํ•˜๋ฉฐ, ํ‰์†Œ์—๋Š” ์ด ๋ธŒ๋žœ์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•œ๋‹ค.

Supporting branch

1) feature (topic)

  • ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜๋กœ, develop ๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ ๋ถ„๊ธฐ
  • feature ๋ธŒ๋žœ์น˜๋Š” ๊ทธ ๊ธฐ๋Šฅ์„ ๋‹ค ์™„์„ฑํ•  ๋•Œ๊นŒ์ง€ ์œ ์ง€ํ•˜๊ณ , ์™„์„ฑ ํ›„ develop์— ๋จธ์ง€ ํ›„ ์‚ญ์ œ
  • feature ๋ธŒ๋žœ์น˜๋Š” ๋ณดํ†ต ๊ฐœ๋ฐœ์ž ์ €์žฅ์†Œ์—๋งŒ ์žˆ๋Š” ๋ธŒ๋žœ์น˜์ด๊ณ  origin์—๋Š” pushํ•˜์ง€ ์•Š๋Š”๋‹ค.

2) release

  • ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ตœ์ข…์ ์ธ ๋ฒ„๊ทธ ์ˆ˜์ • ๋“ฑ์˜ ๊ฐœ๋ฐœ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค

3) hotfix

  • ๋ฐฐํฌํ•œ ๋ฒ„์ „์—์„œ ๊ธด๊ธ‰ํ•˜๊ฒŒ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, master ๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐ

2. Github-flow

Git-flow๊ฐ€ Github์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋ณต์žกํ•ด์„œ ๋‚˜์˜จ ๋ธŒ๋žœ์นญ ์ „๋žต.
master ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ์—ญํ• ๋งŒ ์ •ํ™•ํ•˜๋‹ค๋ฉด ๋‚˜๋จธ์ง€ ๋ธŒ๋žœ์น˜๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ๊ด€์—ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, hotfix ๋ธŒ๋žœ์น˜๋‚˜ feature ๋ธŒ๋žœ์น˜๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค๋งŒ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‹ค๋ฅผ ๋ฟ์ด๋‹ค. ์ด ๋•Œ๋Š” pull request ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒ์žฅํ•œ๋‹ค.

์ด ๋ธŒ๋žœ์นญ ์ „๋žต์€ ์ˆ˜์‹œ๋กœ ๋ฐฐํฌ๊ฐ€ ์ผ์–ด๋‚˜๊ณ , CI์™€ ๋ฐฐํฌ๊ฐ€ ์ž๋™ํ™”๋ผ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์— ์œ ์šฉํ•˜๋‹ค.

์•„.. ์ž์„ธํ•œ๊ฑด Git ๋ธŒ๋žœ์นญ ์ „๋žต - ๊ฐ“์šฐ๋ฆฌ์ฝ”๋”ฉ ์—ฌ๊ธฐ์„œ ๋ณด์žฅ

8. commit์˜ ์ ์ • ๋‹จ์œ„์™€ ํ˜‘์—…, ๋ฉ”์‹œ์ง€

  • ์ปค๋ฐ‹ ํ•˜๋‚˜๋Š” ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค
  • ์ž‘์—…์— ํ•„์š”ํ•œ ํŒŒ์ผ๋“ค ์ด์™ธ์˜ ํŒŒ์ผ์„ ๊ฑด๋“œ๋ฆฌ๋ฉด ์•ˆ ๋œ๋‹ค
  • ์ ์ ˆํ•œ ๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹์„ ํ•ด์•ผํ•œ๋‹ค: ๋‹น์žฅ ํ•„์š”ํ•˜๋‹ค๊ณ  ํ˜„์žฌ ๋ธŒ๋žœ์น˜์— ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š๋‹ค

๋„์ ๐Ÿ˜ƒ

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ