ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git์œผ๋กœ ๋ฒ„์ „๊ด€๋ฆฌํ•˜๊ธฐ
    GitHub 2023. 11. 16. 20:26

    ๐Ÿ‘€ Git ์™œ์“ธ๊นŒ?

    • ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ ๊ฐ€๋Šฅ
    • ๊ณผ๊ฑฐ ์ž‘์—…๋‚ด์šฉ ์—ด๋žŒ๊ฐ€๋Šฅ
    • ์•ˆ์ •์ ์ธ ๊ฐœ๋ฐœ๊ฐ€๋Šฅ

    ์ž‘์—…ํด๋”์—์„œ git ์“ฐ๊ณ  ์‹ถ์œผ๋ฉด git init๋ถ€ํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ

    git init

    .git ์ด ํด๋”์— ์ƒ์„ฑ์ด ๋จ => git์ด ํŒŒ์ผ ๊ธฐ๋กํ•ด๋‘๋Š” ์žฅ์†Œ : repository (์ €์žฅ์†Œ)

     

    ํŒŒ์ผ ํ˜„์žฌ์ƒํƒœ๋ฅผ ๊ธฐ๋กํ•ด๋‘๋ ค๋ฉด?

    git add (ํŒŒ์ผ๋ช…)
    git commit -m "๋ฉ”์‹œ์ง€"

    => git add ํ•œ ํ›„ git commit -m "๋ฉ”์‹œ์ง€"

    => ๊ธฐ๋ก์™„๋ฃŒ๋จ ( = ๋ฒ„์ „์ƒ์„ฑ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ„)

    ๋‹ค์‹œ ์ด ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆด์ˆ˜์žˆ์Œ (git log๋กœ ์กฐํšŒํ•ด์„œ ๋˜๋Œ๋ฆฌ๊ธฐ)

     

    ๋ชจ๋“  ํŒŒ์ผ์„ ๊ธฐ๋กํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— git add (ํŒŒ์ผ๋ช…) ํ•ด์ฃผ๋Š”๊ฒƒ!

    staging์ด๋ž€?

    ์ž‘์—…ํด๋”์—์„œ staging area๋กœ ํด๋”๋“ค์„ git addํ•˜๋Š”๊ฒƒ์„ stagingํ•œ๋‹ค~!๋ผ๊ณ ํ•จ

    = commit ํ•  ํŒŒ์ผ ๊ณจ๋ผ๋†จ๋‹ค๋Š” ๋œป

    git add .

    ๋ชจ๋“ ํŒŒ์ผ ์Šคํ…Œ์ด์ง•ํ•˜๊ธฐ

    git add one.jsx two.jsx

    ์—ฌ๋ŸฌํŒŒ์ผ ์Šคํ…Œ์ด์ง•ํ•˜๊ธฐ

    => ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€, ์ˆ˜์ •ํ–ˆ์„ ๋•Œ(์ž‘์—… ๋ฉ์–ด๋ฆฌ) ์™„๋ฃŒ ํ–ˆ์„ ์‹œ ์Šคํ…Œ์ด์ง•ํ•˜๊ธฐ

     

    ์Šคํ…Œ์ด์ง• ํŒŒ์ผ ํ™•์ธํ•˜๊ธฐ (์ƒํƒœ์ฐฝ ์—ด๊ธฐ)

    git status

    commit ๋‚ด์—ญ ์กฐํšŒํ•˜๊ธฐ (Vim์—๋””ํ„ฐ๊ฐ€ ์ผœ์ ธ์„œ qํ‚ค๋กœ ์ข…๋ฃŒํ•ด์•ผ)

    git log

    VSCode ์—๋””ํ„ฐ๋Š” Source Control๋กœ ๋“ค์–ด๊ฐ€์„œ ํด๋ฆญ์œผ๋กœ git add๊ฐ€๋Šฅ

    ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š” ํŒŒ์ผ๋“ค ๋ณ€๋™ ์‚ฌํ•ญ์„ ๋‚˜ํƒ€๋‚ด์คŒ

     

    + ๋ˆ„๋ฅด๋ฉด git add

    - ๋ˆ„๋ฅด๋ฉด git remove

    ์ฒดํฌ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด commit

    Message ์ฐฝ์— commit ๋ฉ”์‹œ์ง€ ์ž…๋ ฅ ๊ฐ€๋Šฅ

    => CHORE : My.jsx ์ˆ˜์ • ๋ฉ”์‹œ์ง€๋กœ ์ปค๋ฐ‹ํ•˜๊ณ  git log๋กœ ํ™•์ธํ–ˆ๋”๋‹ˆ commit์ด ๋˜์–ด์žˆ์—ˆ๋‹ค!

     

    ๐Ÿ‘€ branch๋ฅผ ์™œ ๋งŒ๋“ค๊นŒ?

     

    ํŒŒ์ผ ๋ณต์‚ฌ๋ณธ ๋งŒ๋“ค์–ด์„œ ์ฝ”๋“œ ์งœ๋ฉด ์•ˆ์ •

    branch ๊ธฐ๋Šฅ ์ด์šฉํ•˜๋ฉด ๋ณต์‚ฌ๋ณธ ๋งŒ๋“ค๊ธฐ ์‰ฌ์›€ ( ๋…๋ฆฝ์ ์ธ ๊ฐœ๋ฐœ๊ฐ€๋Šฅ)

    ํŒ€ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์Œ

     

    ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ

    git branch ๋ธŒ๋žœ์น˜๋ช…

     

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

    git switch ๋ธŒ๋žœ์น˜๋ช…

     

    ๐Ÿ‘€  Merge ๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฅผ main ๋ธŒ๋žœ์น˜์— ํ•ฉ์น˜๊ณ  ์‹ถ์œผ๋ฉด?

    ๊ธฐ์ค€ ๋ธŒ๋žœ์น˜ ์ด๋™ ํ›„ merge

    git switch main > git merge ๋ธŒ๋žœ์น˜๋ช…

     

    => ๊ฒน์น˜๋Š” ํŒŒ์ผ์ด ์—†์œผ๋ฉด merge๊ฐ€ ์ž˜ ๋จ

    => But, ๊ฒน์น˜๋Š” ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด conflict ๋ฐœ์ƒ!!

     

    ์ผ์ผ์ด ์ˆ˜์ •ํ•ด์•ผ ํ•จ

    1. ์›ํ•˜๋Š” ์ฝ”๋“œ๋งŒ ๋‚จ๊ธฐ๊ณ 

    2. git add

    3. git commit -m " conflict resolve"

     

    ๐Ÿ‘€  ํ•„์š”์—†๋Š” branch ์‚ญ์ œ๋Š”?

    // merge ์™„๋ฃŒ๋œ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ
    git branch -d ๋ธŒ๋žœ์น˜๋ช…
    // merge ์•ˆํ•œ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ
    git branch -D ๋ธŒ๋žœ์น˜๋ช…

    ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ๊ณผ ์ฒดํฌ์•„์›ƒ์„ ํ•œ๋ฒˆ์— ํ•˜๋ ค๋ฉด git checkout -b (์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ช…)

    git checkout -b (์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ช…)

    ๐Ÿ‘€ restore / revert / reset

    restore

    ํŒŒ์ผ ๋ณต๊ตฌํ•˜๋Š” ๋ฒ•
    git restore ํŒŒ์ผ๋ช…

    revert 

    commit ์ทจ์†Œํ•˜๋Š” ๋ฒ•
    git revert ์ปค๋ฐ‹๋กœ๊ทธ

     

    commit ์—ฌ๋Ÿฌ๊ฐœ ์ทจ์†Œ ๊ฐ€๋Šฅ

    git revert ์ปค๋ฐ‹๋กœ๊ทธ1 ์ปค๋ฐ‹๋กœ๊ทธ2

     

    ์ตœ๊ทผ commit ์ทจ์†Œ ๊ฐ€๋Šฅ

    git revert HEAD

    reset 

    ์ปค๋ฐ‹๋กœ๊ทธ ๋˜๋Œ๋ฆฌ๊ธฐ
    git reset --hard 30157313b9c1d9cc254f73d5cb1fee8088f56791 (์ปค๋ฐ‹๋กœ๊ทธ)

    ๐Ÿ“ข ํ˜‘์—…์‹œ ์‚ฌ์šฉ ๊ธˆ์ง€ (์œ„ํ—˜ํ•จ) => ์ฝ”๋“œ ๊ณต์œ ํ•˜๊ณ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค ๊ฒƒ๋„ ๋‹ค ์‚ญ์ œ๋˜์–ด๋ฒ„๋ฆผ

     

    ์›๊ฒฉ์ €์žฅ์†Œ์— repogitory ์ €์žฅํ•˜๊ธฐ

    git init
    git branch -M main
    git add .
    git commit -m "์ฒซ๋ฒˆ์งธ ์ปค๋ฐ‹"
    git remote add origin "์›๊ฒฉ์ €์žฅ์†Œ์ด๋ฆ„" // ๋ณ€์ˆ˜์ง€์ • ์›๊ฒฉ์ €์žฅ์†Œ์ด๋ฆ„์„ origin์œผ๋กœ ์ง€์ •
    git push -u origin main // git push ํ•  ๋•Œ -u ์ถ”๊ฐ€ํ•˜๋ฉด ์ฃผ์†Œ ๊ธฐ์–ตํ•ด์คŒ
    // ์ดํ›„์—๋Š” git push๋งŒ ์“ฐ๋ฉด ๋จ

    git pull

    git push origin main

    ๋ณ€๋™๋‚ด์—ญ์ด์žˆ์œผ๋ฉด push๊ฐ€ ์•ˆ๋จ (error)

    ์›๊ฒฉ ์ €์žฅ์†Œ ์ตœ์‹ ๋‚ด์šฉ์ด  ๋กœ์ปฌ์ €์žฅ์†Œ์— ์žˆ์„ ๋•Œ์—๋งŒ push ๊ฐ€๋Šฅ!!

    push ์ „์— pull์„ ํ•ด์ฃผ์ž!!

     

    git pull

    git pull origin main

    = git fetch + git merge์ž„ (conflict ๋ฐœ์ƒ ๊ฐ€๋Šฅ)

     

    git fetch : ์›๊ฒฉ์ €์žฅ์†Œ ์‹ ๊ทœ commit ๊ฐ€์ ธ์˜ด

    git merge : ๋‚ด ๋ธŒ๋žœ์น˜์— ํ•ฉ์น˜๊ธฐ

     

    git pull ํ•  ๋•Œ ํŒ€์› 2๋ช…์ด์„œ ๊ฐ™์€ํŒŒ์ผ ์ˆ˜์ • ์‹œ merge conflict๊ฐ€ ๋‚  ์ˆ˜ ์žˆ์Œ

     

    ๐Ÿ‘€ ์ข‹์€ ์ปค๋ฐ‹ ๋ฉ”์‹œ

     

    feat : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ปค๋ฐ‹
    fix : ๋ฒ„๊ทธ ์ˆ˜์ •์— ๋Œ€ํ•œ ์ปค๋ฐ‹
    build : ๋นŒ๋“œ ๊ด€๋ จ ํŒŒ์ผ ์ˆ˜์ •์— ๋Œ€ํ•œ ์ปค๋ฐ‹
    chore : ๊ทธ ์™ธ ์ž์ž˜ํ•œ ์ˆ˜์ •์— ๋Œ€ํ•œ ์ปค๋ฐ‹
    ci : CI๊ด€๋ จ ์„ค์ • ์ˆ˜์ •์— ๋Œ€ํ•œ ์ปค๋ฐ‹
    docs : ๋ฌธ์„œ ์ˆ˜์ •์— ๋Œ€ํ•œ ์ปค๋ฐ‹
    style : ์ฝ”๋“œ ์Šคํƒ€์ผ ํ˜น์€ ํฌ๋งท ๋“ฑ์— ๊ด€ํ•œ ์ปค๋ฐ‹
    refactor :  ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์— ๋Œ€ํ•œ ์ปค๋ฐ‹
    test : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •์— ๋Œ€ํ•œ ์ปค๋ฐ‹

     

Designed by Tistory.