Skip to content

ksh9241/Git-Tutorial

Repository files navigation

Git & Github ์‹ค๋ฌดํ™œ์šฉ ์™„๋ฒฝ ๊ฐ€์ด๋“œ

๋ช…๋ น์–ด ์ •๋ฆฌ

  • pwd : ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ ์ถœ๋ ฅ

  • clear : cmd ๋‚ด์šฉ ์ง€์šฐ๊ธฐ

  • open : ํด๋”๋‚˜ ํŒŒ์ผ ์‹คํ–‰

  • cat : ํ…์ŠคํŠธ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ๋ช…๋ น์–ด

  • git config --global user.name "" : ์œ ์ €๋ช… ๋ณ€๊ฒฝ

  • git config --global user.email "" : ์œ ์ € ์ด๋ฉ”์ผ ๋ณ€๊ฒฝ

  • cd .. : ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™

  • ls : ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ

  • ls -altr : ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๋ฆฌ์ŠคํŠธ์˜ ๊ถŒํ•œ๊นŒ์ง€ ์ถœ๋ ฅ

  • touch [๊ฒฝ๋กœ] ์ƒ์„ฑํ•  ํŒŒ์ผ๋ช…... : ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜๋˜, ํŒŒ์ผ๋ช…๋งŒ ์ž…๋ ฅํ•˜์—ฌ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

  • mkdir [๊ฒฝ๋กœ] ์ƒ์„ฑํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ช…: ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

  • rm ์‚ญ์ œํ•  ํŒŒ์ผ๋ช… : ํŒŒ์ผ์„ ์‚ญ์ œํ•œ๋‹ค.

  • rm -rf ์‚ญ์ œํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ๋ช…: ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์‚ญ์ œํ•œ๋‹ค. (rf ์—์„œ recursive์€ ์žฌ๊ท€, force ๋Š” ๊ฐ•์ œ์ ์„ ๋œปํ•œ๋‹ค.)

    • rm์€ ์˜๊ตฌ์‚ญ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์‹ฌํžˆ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • ls -a : ์ˆจ๊น€ํŒŒ์ผ ๋ชฉ๋ก๋„ ๋ณด์—ฌ์ค€๋‹ค.

  • git status : ์ €์žฅ์†Œ์™€ ๋น„๊ตํ•˜์—ฌ ๋ณ€๊ฒฝ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ๋‹ค.

  • git init : ์ƒˆ๋กœ์šด ๊นƒ ์ €์žฅ์†Œ๋ฅผ ์‹ค์ฒดํ™”ํ•œ๋‹ค.

  • git add :

  • git reset HEAD [file]: git add๋ฅผ ์ทจ์†Œํ•œ๋‹ค.

    • -soft : index๋ณด์กด(addํ•œ ์ƒํƒœ, staged ์ƒํƒœ)
    • -mixed : index์ทจ์†Œ (addํ•˜๊ธฐ ์ „ ์ƒํƒœ, unstaged ์ƒํƒœ) [default]
    • -hard : index ์ทจ์†Œ (addํ•˜๊ธฐ ์ „ ์ƒํƒœ, unstaged ์ƒํƒœ), ๋””๋ ‰ํ„ฐ๋ฆฌ ํŒŒ์ผ ์‚ญ์ œ
  • git commit : ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊นƒ ์ €์žฅ์†Œ์— ์—…๋กœ๋“œํ•œ๋‹ค.

    • ์˜ต์…˜์„ ๋„ฃ์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ
      1. vim์˜ ์—๋””ํ„ฐ๊ฐ€ ๋‚˜์˜จ๋‹ค.
      2. i๋ฅผ ๋ˆŒ๋Ÿฌ insert๋กœ ์—๋””ํ„ฐ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.
      3. ๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.
      4. esb๋ฅผ ๋ˆŒ๋Ÿฌ insert ์ƒํƒœ๋ฅผ ํ•ด์ œํ•œ๋‹ค.
      5. :wq๋ฅผ ๋ˆŒ๋Ÿฌ ์—๋””ํ„ฐ๋ฅผ ๋‚˜์˜จ๋‹ค.
    • -m : ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
    • --amend : ์ œ์ผ ์ตœ๊ทผ์— ์ปค๋ฐ‹ํ•œ ๋‚ด์šฉ์— ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • git log : ๊นƒ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์ปค๋ฐ‹ ์ •๋ณด๋“ค์„ ๊ฒ€์ƒ‰ํ•œ๋‹ค. ์ €์ž์™€ ๋‚ ์งœ, ์ด๋ฉ”์ผ ๋“ฑ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    • --abbrev-commit : ๋กœ๊ทธ์˜ ํ•ด์‰ฌ๊ฐ’์„ ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    • --oneline : ์ปค๋ฐ‹์ด๋ ฅ ๋กœ๊ทธ๋ฅผ ํ•œ์ค„๋กœ๋งŒ ๋ณด์—ฌ์ค€๋‹ค.
  • git config --global core.editor "code --wait" : git commit์„ ํ•˜๋ฉด vim์ด ๋‚˜์˜ค๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ vscode ์—๋””ํ„ฐ์—์„œ ์ปค๋ฐ‹๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

    • ๋ฌธ์ œ์  : git์ด vscode๋ฅผ ๋ชป์ฐพ์„ ๋•Œ
      1. control + shift + p๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ํŒ”๋ › ์—ด๊ธฐ
      2. code command ... ์ฐพ์•„์•ผํ•˜๋Š”๋ฐ ์—†์Œ. (์ง„ํ–‰๋ถˆ๊ฐ€.)
  • git branch : ๋ธŒ๋žœ์น˜์จ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค€๋‹ค.

    • git branch [branch-name] : ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
    • git branch -d [branch-name] : ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
    • git branch -D [branch-name] : ๋ณ‘ํ•ฉ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ์‚ญ์ œํ•œ๋‹ค.
    • git branch -m [branch-name] : ๋ธŒ๋žœ์น˜๋ช…์„ ๋ณ€๊ฒฝํ•œ๋‹ค.
    • git branch -v: ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก๊ณผ ์ตœ์ข…์ปค๋ฐ‹์ด๋ ฅ์„ ํ•จ๊ป˜ ๋ณด์—ฌ์ค€๋‹ค.
    • git branch -M [brnach-name] : ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.
    • git branch -r : ์›๊ฒฉ ์ถ”์  ๋ธŒ๋žœ์น˜ ํ™•์ธํ•˜๊ธฐ
      • git commit ์ดํ›„ git status๋ฅผ ํ™•์ธํ•˜๋ฉด origin/master๋ณด๋‹ค N์ปค๋ฐ‹ ์•ž์„œ์žˆ๋‹ค๋Š” ๋ง์ด ๋‚˜์˜จ๋‹ค. ์ด ๋ง์€ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์™€ origin/master๋Š” ๋˜‘๊ฐ™์€ ๊ฒƒ์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.
      • ์›๊ฒฉ ์ถ”์  ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ์–ผ๋งˆ๋‚˜ ์•ž์„œ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • git switch [branch-name] : ์ด ๋ช…๋ น์–ด๋Š” HEAD๊ฐ€ ์‹คํ–‰ํ•œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ฐ”๋ผ๋ณด๊ฒŒ ํ•œ๋‹ค.

    • git switch -c [branch-name] : ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋™๊นŒ์ง€ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•œ๋‹ค.
    • git switch - : ์ง์ „์˜ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•œ๋‹ค.
  • git checkout [branch-name] : ๋ธŒ๋žœ์น˜ ์ด๋™์„ ์œ„ํ•œ ๋ช…๋ น์–ด์ด๋‹ค. switch ์ด์ „ ์‹œ๋Œ€์— ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ํ˜„์žฌ๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

    • git checkout HEAD [file-name]: ์ˆ˜์ •์„ ํ•ด์„œ status ์ƒํƒœ๊ฐ€ ์žˆ์ง€๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ณ  ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • git merge [branch-name] : HEAD๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ˜„์žฌ ๋ธŒ๋žœ์น˜์—์„œ ์ง€์ •ํ•œ ๋ธŒ๋žœ์น˜๋ฅผ mergeํ•œ๋‹ค.

  • git diff : ์ตœ์ข… ์ปค๋ฐ‹ ์ด๋ ฅ๊ณผ ํ˜„์žฌ ํŒŒ์ผ์˜ ์ƒํƒœ๋ฅผ ๋น„๊ตํ•œ๋‹ค.

  • git stash : ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์„ ์ž„์‹œ ์ €์žฅํ•˜๋„๋ก ํ•ด์ฃผ๊ณ  ๋ถˆํ•„์š”ํ•œ ์ปค๋ฐ‹์œผ๋กœ ์ด๋ ฅ์„ ์ง€์ €๋ถ„ํ•ด์ง€๋Š” ๊ฒƒ ์—†์ด ๋‚˜์ค‘์— ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

    • git stash list : stash ์ €์žฅ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
    • git stash pop [] : stash ์ €์žฅ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.
    • git stash apply : peek ๋ฉ”์„œ๋“œ์™€ ๋น„์Šทํ•˜๋‹ค. ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ค์ง€๋งŒ ์ €์žฅ๊ณต๊ฐ„์— ์ €์žฅ ์ด๋ ฅ์„ ์ง€์šฐ์ง€ ์•Š๋Š”๋‹ค. (๋ณดํ†ต B ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•œ ๊ฑธ ๋งˆ์Šคํ„ฐ๋ธŒ๋žœ์น˜๋กœ ์ ์šฉ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ ฅ์ด ๋‚จ์•„์žˆ์–ด์•ผ ์ž‘์—…ํ•œ ๋ธŒ๋žœ์น˜์—์„œ๋„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ.)
    • git stash drop []: ์ €์žฅ๋œ stash ์ •๋ณด๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
    • git stash clear : ์ €์žฅ๋œ ๋ชจ๋“  stash ์ •๋ณด๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
  • git restore [file-name] : git checkout HEAD [file-name] ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์„ ์ตœ์ข…์ปค๋ฐ‹ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฐ๋‹ค. ๋‹จ ํŒŒ์ผ ์ƒ์„ฑํ›„ ์ƒ์„ฑ ์ „์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ๋Š” ์•ˆ๋˜๋Š” ๋“ฏ ์‹ถ๋‹ค.

    • git restore --source HEADN [file-name] : ๊ทธ ํŒŒ์ผ๋งŒ HEADN์˜ ์œ„์น˜๋กœ ๋Œ์•„๊ฐ€๋Š” ๋“ฏ?
    • git restore --staged [file-name] : git add๋ฅผ ํ†ตํ•ด ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ ค๋‘” ํŒŒ์ผ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋‹ค.
  • git reset [hashcode]: ์ปค๋ฐ‹๋œ ์œ„์น˜๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์ž‘์—… ๋‚ด์šฉ์€ ๋กค๋ฐฑ๋˜์ง€ ์•Š๋Š”๋‹ค.

  • git revert [hashcode] : ์ปค๋ฐ‹์„ ์ƒˆ๋กœ๋งŒ๋“ค๊ณ  ํ•ด์‹œ์ฝ”๋“œ ์ด์ „์œผ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์ปค๋ฐ‹์ด๋ ฅ์ด ์ง€์›Œ์ง€์ง€ ์•Š๋Š”๋‹ค.

    • A๊ฐ€ 1,2,3 ์ปค๋ฐ‹์ด๋ ฅ์ด ์žˆ๊ณ  B๊ฐ€ 1,2,3,4์˜ ์ปค๋ฐ‹์ด๋ ฅ์ด ์กด์žฌํ•  ๋•Œ B๊ฐ€ 4๊นŒ์ง€ ์ž‘์—…์„ ์™„๋ฃŒํ–ˆ์ง€๋งŒ A๊ฐ€ 2,3์˜ ์ž‘์—…์„ ์ง€์šฐ๊ณ  ์‹ถ์„ ๋•Œ reset์„ ํ•˜๊ฒŒ๋˜๋ฉด B์˜ 4๊ฐ€ ์ง€์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์— A๋Š” revert๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „ ์ด๋ ฅ์„ ๋‚จ๊ธฐ๋ฉด์„œ ๋‚ด๊ฐ€ ์ง€์šฐ๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•˜์—ฌ ์žฌ์ปค๋ฐ‹ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • git clone [url] : ํด๋ผ์šฐ๋“œ์— ์žˆ๋Š” ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.

  • SSH ํ™•์ธํ•˜๊ธฐ

  • git remote : ํ˜„์žฌ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์›๊ฒฉ๋“ค์„ ๋‚˜์—ดํ•ด์„œ ๋ณด์—ฌ์ค€๋‹ค.

    • git remote -v : ์ €์žฅ์†Œ์˜ ์›๊ฒฉ๋“ค์˜ ์ด๋ฆ„๊ณผ ์ฃผ์†Œ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.
    • git remote add [name] [url] : ์ด๋ฆ„์˜ ํ‘œ์ค€์€ origin์ด๊ณ , url์€ ๊นƒํ—ˆ๋ธŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ ์‹œ ๋‚˜์˜ค๋Š” url์„ ๋„ฃ์–ด์ค€๋‹ค.
    • git remote rename [old] [new] : ์›๊ฒฉ ์ด๋ฆ„์„ ๋ฐ”๊พผ๋‹ค.
    • git remote remove [name] : ์›๊ฒฉ์„ ์‚ญ์ œํ•œ๋‹ค. ์˜คํ”ˆ์†Œ์Šค์˜ ๊ฒฝ์šฐ ์›๊ฒฉ์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ ์‚ญ์ œํ•˜๋Š” ์ผ๋„ ๋ฐœ์ƒํ•œ๋‹ค.
  • git push [remote] [branch]: ํด๋ผ์šฐ๋“œ์— ์ปค๋ฐ‹๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

    • git push -u [remote] [branch] : ์ƒ๋ฅ˜(upstream)์„ ์˜๋ฏธํ•œ๋‹ค. ์ด ๋ง์€ ๊นƒ์—๊ฒŒ ๋กœ์ปฌ ์ปดํ“จํ„ฐ ๋‚ด ์ €์žฅ์†Œ์˜ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ฅผ [remote] [branch]๋กœ ํ‘ธ์‹œํ•˜๋ผ๋Š” ๋œป์ด๋‹ค. ์ตœ์ดˆ 1ํšŒ -u๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ดํ›„ git push ๋งŒ์œผ๋กœ [remote] [branch]๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.
    • git push [remote] [local-branch]:[remote-branch] ๋กœ์ปฌ์— ์žˆ๋Š” ๋ธŒ๋žœ์น˜๋กœ ์˜ค๋ฆฌ์ง„ ๋ธŒ๋žœ์น˜์— ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ex : git push origin cats:master
  • git fetch [remote] : ์›๊ฒฉ์ €์žฅ์†Œ(ํด๋ผ์šฐ๋“œ) ์— ์ €์žฅ๋œ ์ž๋ฃŒ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค. ๋‹จ, ๋กœ์ปฌ์˜ working directory์™€ ํ†ตํ•ฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

  • git pull [remote] [branch] : git pull = git fetch + git merge

  • git rebase [branch-name] : ๋จธ์ง€๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋จธ์ง€์ปค๋ฐ‹์„ ํ•˜์ง€ ์•Š๊ณ  ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์˜ ์ž‘์—…๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—” ์•„๋ฌด ์˜ํ–ฅ์ด ์—†๋‹ค.

    • ๋งˆ์Šคํ„ฐ๋ธŒ๋žœ์น˜์˜ ๋์„ ์ƒˆ๋กœ์šด ๋ฒ ์ด์Šค๋กœ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด๋‹ค.
    • feat ๋ธŒ๋žœ์น˜์˜ ์ปค๋ฐ‹์ด ์–ผ๋งˆ๋‚˜ ์žˆ๋˜ ์ƒ๊ด€์—†์ด ๋งˆ์Šคํ„ฐ๋ธŒ๋žœ์น˜ ๋์— ์ž‘์—…ํ•œ feat ๋ธŒ๋žœ์น˜์˜ ์ปค๋ฐ‹์ด ์žฌ์ƒ์„ฑ๋˜์–ด ๋ถ™๋Š”๋‹ค.
  • git diff [A Branch]..[B Branch] : ๋‘ ๋ธŒ๋žœ์น˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋น„๊ตํ•˜๊ธฐ.

์ดˆ์‹ฌ์ž๊ฐ€ ์‹ค์ˆ˜ํ•˜๋Š” ๋ถ€๋ถ„

  1. ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ณ€๊ฒฝํ•˜๋Š” ํŒŒ์ผ์ด๋‚˜ ํด๋”๋Š” ๊นƒ์— ์˜ํ•ด ์ถ”์ ๋œ๋‹ค.
  2. ํ˜„์žฌ ์กด์žฌํ•˜๊ณ  ์žˆ๋Š” ์ €์žฅ์†Œ ์•ˆ์— ๋‹ค๋ฅธ ์ €์žฅ์†Œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. (์ €์žฅ์†Œ ์•ˆ์— init ๊ธˆ์ง€)

์ปค๋ฐ‹ํ”Œ๋กœ์šฐ ๊ฐœ์š”

  • ์ปค๋ฐ‹ํ•˜๋Š” ๊ฒƒ์ด ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฅธ ๊ฒƒ์ด๋‹ค. ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ ์ด์ƒ์œผ๋กœ ์–ด๋–ค ๊ฒƒ์„ ๊ตฌ์ถ•ํ•œ๋‹ค๋Š” ๊ฒƒ.
  • ์ปค๋ฐ‹ํ•œ ์‚ฌํ•ญ์„ ๋ช‡๋ช‡์„ ๋ฌถ์–ด์„œ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. [Add๋ฅผ ํ†ตํ•œ ๊ทธ๋ฃนํ™”]
  • git commit ์‹œ .git ์•ˆ์— ์žˆ๋Š” ๊ฒƒ๋“ค์„ ๋ณ€๊ฒฝํ•ด์„œ ์ƒˆ ์ปค๋ฐ‹ ํด๋”์— ๋“ฑ๋กํ•œ๋‹ค.

Atomic Commits (์›์ž์  ์ปค๋ฐ‹)

  • ์ปค๋ฐ‹์˜ ๋‹จ์œ„๋ฅผ ์ตœ๋Œ€ํ•œ ๋ถ„ํ• ํ•˜์—ฌ ์ž‘์—…ํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•˜๋‹ค. ๋˜ํ•œ ์ž‘๊ฒŒ๋งŒ ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๋‹จ์ผ ์ž‘์—…์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ปค๋ฐ‹์„ ์œ ์ง€ํ•ด๋ผ.

ํ˜„์žฌ์‹œ์ œ์˜ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

  • ํ˜„์žฌ์‹œ์ œ๋ž€ ์–ด๋–ค๊ฒƒ์„ ๋งŒ๋“ค๋‹ค, X๋ฅผ ๋ณ€๊ฒฝํ•˜๋‹ค, X๋ฅผ ๊ณ ์น˜๋‹ค ์™€ ๊ฐ™์€ ๋™์‚ฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฒ ์ด์Šค์— ๋ช…๋ นํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
  • ํ˜„์žฌ์‹œ์ œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ํ•˜๋‚˜์˜ ๊นƒ์ด ์–ด๋А ์‹œ์ ์—์„œ ์Šค์Šค๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๊ณ  ์šฐ๋ฆฌ๋Š” ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์–˜๊ธฐํ•  ๋•Œ ๋ณ‘ํ•ฉ, ํ’€, ๋ฆฌํ€˜์ŠคํŠธ ๊ฐ™์ด ํ˜„์žฌ์‹œ์ œ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

gitignore

ํ˜•์ƒ๊ด€๋ฆฌ์— ์—…๋กœ๋“œ ํ•˜์ง€ ์•Š์„ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•œ๋‹ค.

  • touch .gitignore ๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ์ƒ์„ฑ
  • .gitignore ์— ์ œ์™ธ ๋Œ€์ƒ ๋ชฉ๋ก ์ž‘์„ฑ
    • (/)๊ฐ€ ์žˆ์œผ๋ฉด ๋””๋ ‰ํ† ๋ฆฌ, ์—†์œผ๋ฉด ํŒŒ์ผ์„ ์˜๋ฏธ
  • .gitignore ์— ์ œ์™ธ ๋Œ€์ƒ ๋ชฉ๋ก์œผ๋กœ ์ง€์ •๋˜๋ฉด ์ˆ˜์ •์‚ฌํ•ญ์ด ์ƒ๊ฒจ๋„ status๋Š” ์ถ”์ ํ•˜์ง€ ๋ชปํ•œ๋‹ค.

branch

์—ฌ๋Ÿฌ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๊ณตํ†ต๋œ ๋ถ€๋ถ„์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•œ ์ƒˆ๋กœ์šด ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ ํ›„ ์—ฌ๋Ÿฌ ์ผ€์ด์Šค ์ค‘ ๊ฐ€์žฅ ์ดํ•ด๊ด€๊ณ„์ž์™€์˜ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ž˜ ์ฒ˜๋ฆฌ๋œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•œ๋‹ค.

  • ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ž€ (๋ฉ”์ธ ๋ธŒ๋žœ์น˜)?

    • ๊นƒ์€ ํ•ญ์ƒ ๋ธŒ๋žœ์น˜ ์œ„์— ์กด์žฌํ•œ๋‹ค.
    • ์šฐ๋ฆฌ๊ฐ€ ๋ธŒ๋žœ์น˜๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๋งˆ์Šคํ„ฐ๋ธŒ๋žœ์น˜๊ฐ€ ์กด์žฌํ•œ๋‹ค. (git init์„ ํ†ตํ•ด ์ƒ์„ฑ๋˜๋Š” ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜)
    • ์—ฌํƒ€ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์™€ ๋™์ผํ•˜๋‹ค. ์ฐจ์ด์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋งŒ๋“ค์ง€ ์•Š์•˜์„ ๋ฟ์ด๋‹ค.
  • HEAD๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€?

    • HEAD์˜ ์˜๋ฏธ : ์šฐ๋ฆฌ๊ฐ€ ๋ณด๊ฑฐ๋‚˜ ํ™•์ธํ•˜๊ณ  ์žˆ๋Š” ํ˜„์žฌ ์œ„์น˜๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰ ์–ด๋А๋ธŒ๋žœ์น˜๋ฅผ ๋ฐ”๋ผ๋ณด๋Š”์ง€์— ๋Œ€ํ•œ ํ™”์‚ดํ‘œ ๊ฐ™์€ ๊ฒƒ
  • ๋ธŒ๋žœ์น˜ ๋ณ€๊ฒฝ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

    • A๋ธŒ๋žœ์น˜์—์„œ B๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ ์ถฉ๋Œ๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ ์ปค๋ฐ‹์„ํ•˜๊ณ  ์ด๋™ํ•ด์•ผ ํ•จ. ์•ˆ๊ทธ๋Ÿฌ๋ฉด ๋ฐ์ดํ„ฐ ์œ ์‹ค์˜ ์œ„ํ—˜์ด ์žˆ์Œ.
    • ๊ทธ๋Ÿฌ๋‚˜ A๋ธŒ๋žœ์น˜์—” ์—†๊ณ  B๋ธŒ๋žœ์น˜์— ์‹ ๊ทœ๋กœ ๋งŒ๋“  ๋ฐ์ดํ„ฐ๋Š” ๋”ฐ๋กœ ์ปค๋ฐ‹์„ ํ•˜์ง€ ์•Š์•„๋„ ๋ฐ์ดํ„ฐ ์œ ์‹ค์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ , ๋ณ‘ํ•ฉ๋จ.

Merging

  • ํŠน์ • ์ปค๋ฐ‹์ด ์•„๋‹ˆ๋ผ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•œ๋‹ค.
  • ํ•ญ์ƒ ํ˜„์žฌ HEAD ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•œ๋‹ค. ์ฆ‰ HEAD๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ ๋ฉ”์ธ์ด ๋œ๋‹ค.
  • ์ปค๋ฐ‹๋“ค์€ ๊ฐ๊ฐ์˜ ๋ถ€๋ชจ ์ปค๋ฐ‹์ด ์กด์žฌํ•˜๋Š”๋ฐ ์ด ๋•Œ ํ•˜๋‚˜์˜ ๋ถ€๋ชจ ์ด์ƒ์ด ์กด์žฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. (๋‹ค์ค‘ ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•œ ๋ณ‘ํ•ฉ์ƒํ™ฉ)
  • ์„œ๋กœ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์—์„œ ๊ฐ์ž ๋‹ค๋ฅธ ์ž‘์—… ํ›„ ์ถฉ๋Œ๋‚˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ปค๋ฐ‹๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ํ›„ :wq๋กœ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ถฉ๋Œ ์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์ถฉ๋Œ๋œ ๋ถ€๋ถ„์„ ์ง์ ‘ ํ™•์ธ ํ›„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ์ถฉ๋Œ ๋ถ€๋ถ„์„ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒ ํ›„ ์ œ๊ฑฐ ํ›„ ์ปค๋ฐ‹ํ•œ๋‹ค.
    1. ์ถฉ๋Œ ์‹œ ====== ๋ฅผ ๊ธฐ์ค€์œผ๋กœ HEAD์™€ ํ•ฉ๋ณ‘ํ•˜๋ ค๋Š” ๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค.
    2. ์ˆ˜์ • ํ›„ ์ปค๋ฐ‹์„ ํ•˜๋ฉด ๋ณ‘ํ•ฉ์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

git diff

  • git diff ๋ž€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋“ค์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ช…๋ น์–ด๋‹ค.
  • @@ OO๊ฐ’์œผ๋กœ ์ˆ˜์ •๋œ ๋ผ์ธ ํ‘œ์‹œ

git stash

  • git stash๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

    • ๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ์ž‘์—…์ด ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•ด์•ผํ•  ๋•Œ. ์ด ๋•Œ ์ด๋™ํ•˜๋ ค๋Š” A์— ์ถ”๊ฐ€์‚ฌํ•ญ์ด ์—†๊ณ , B์—์„œ ์ถ”๊ฐ€๋œ ๋‚ด์šฉ๋งŒ ์žˆ์„ ๊ฒฝ์šฐ๋Š” ์ด๋™์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, A์™€ B๊ฐ€ ๋‹ฌ๋ผ์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ์„ ๊ฒฝ์šฐ์—” ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • git stash ๋™์ž‘์›๋ฆฌ

    • git stash save๋ฅผ ์‹คํ–‰ ์‹œ Staging Area์— ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ๋‚ด์—ญ์„ ์ €์žฅํ•ด๋‘”๋‹ค.
    • git stash list๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅํ•ด๋‘” stas๊ฐ€์ ธ์˜ฌ ๋‚ด์šฉ์„ git stash pop์œผ๋กœ ๋‹ค์‹œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ธ๋ฑ์Šค ์ด๋ ฅ์€ ์Šคํƒ ํ˜•ํƒœ๋กœ ์Œ“์ธ๋‹ค.

๋ถ„๋ฆฌ๋œ ํ—ค๋“œ

  • git checkout [hashCode] ์ž…๋ ฅ ์‹œ ํ—ค๋“œ๋ฅผ ๋ถ„๋ฆฌ์‹œ์ผœ ์‹œ๊ฐ„์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • git switch [branch-name] || git checkout [branch-name] ์œผ๋กœ ํ˜„์žฌ ์ปค๋ฐ‹์ƒํƒœ๋กœ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ํ—ค๋“œ๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ๋”ฐ๋ผ๊ฐ„๋‹ค. ํ—ค๋“œ๋Š” ์ปค๋ฐ‹์„ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋ถ„๋ฆฌ๋œ ํ—ค๋“œ๋ž€ ๋ธŒ๋žœ์น˜๋Š” ์ตœ์ข… ์ปค๋ฐ‹์ƒํƒœ์—์„œ ์›€์ง์ด์ง€ ์•Š๊ณ , ํ—ค๋“œ๋งŒ ์ด๋™ํ•˜์—ฌ ๋กœ๊ทธ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ๋‹ค.
  • ์‚ฌ์šฉ ๋ชฉ์ 
    • ๋ถ„๋ฆฌ๋œ ํ—ค๋“œ๋ฅผ ํ†ตํ•ด ๊ณผ๊ฑฐ๋กœ ๋Œ์•„๊ฐ€์„œ ํƒ์ƒ‰ ๋ฐ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ƒˆ๋กœ์šด ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•จ.

ํ—ค๋“œ๊ธฐ๋ฐ˜ ์ฐธ์กฐ

  • git checkout HEAD~N ๋Š” check out log๊ธฐ์ค€ ~N๊ฐœ ์ด์ „์˜ ํ—ค๋“œ๋กœ ์ด๋™ํ•˜๊ธฐ ์ž…๋‹ˆ๋‹ค.

์ˆ˜์ •์‚ฌํ•ญ ์ทจ์†Œํ•˜๊ธฐ

  • git Restore๋Š” git checkout ๋ถ€๋‹ด์„ ์ค„์—ฌ์ค€๋‹ค.
  • git restore์˜ ๋‘ ๋ฒˆ์งธ ์šฉ๋„๋Š” ์Šคํ…Œ์ด์ง€๋œ ํŒŒ์ผ์„ ์–ธ์Šคํ…Œ์ด์ง€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

Git hub

  • ๊นƒํ—ˆ๋ธŒ๋ž€?

    • ํ•œ๋งˆ๋””๋กœ ์š”์•ฝํ•˜๋ฉด ๊นƒ ์ €์žฅ์†Œ๋ฅผ ์œ„ํ•œ ํ˜ธ์ŠคํŒ… ํ”Œ๋žซํผ
    • ๊นƒํ—ˆ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์šฐ๋“œ์— ๊นƒ ์ €์žฅ์†Œ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.
    • ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ด์šฉํ•˜๋ฉด ํ˜‘์—…์— ์ข‹๋‹ค.
    • ๋Œ€๊ธฐ์—…์šฉ์ด ์œ ๋ฃŒ์ด๊ณ , ๊ฐœ์ธ์€ ๋ฌด๋ฃŒ๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊นƒํ—ˆ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

    • ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ
      • ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์†Œ์Šค ์ฝ”๋“œ ๊ณต์œ 
      • ์ œํ’ˆ์‚ฌ์šฉ์ž๋“ค๋กœ ๊ตฌ์„ฑ๋œ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ† ๋ก 
    • ์ตœ์‹  ์ •๋ณด ์–ป๊ธฐ
    • ํ˜‘์—…ํ•˜๊ธฐ

git clone

  • ๋กœ์ปฌ์— ์—†๊ณ , ํด๋ผ์šฐ๋“œ์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • git์ด ์กด์žฌํ•˜๋Š” ๊ณณ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.
    • git ๋‚ด์˜ ์ƒˆํด๋”๊ฐ€ ์ƒ๊ธฐ๊ณ  ๊ทธ ์•ˆ์— ์ดˆ๊ธฐํ™”๋œ ๊นƒ ์ €์žฅ์†Œ๊ฐ€ ๋“ค์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • git clone์€ ๊นƒํ—ˆ๋ธŒ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š๋Š”๋‹ค.
    • ์ด ๋ง์€ ๊นƒ๋žฉ์˜ url๋„ clone์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๋‹ค๋ฅธ ํด๋ผ์šฐ๋“œ๋„ ๊ฐ€๋Šฅํ•œ ๊ณณ์ด ์กด์žฌํ•œ๋‹ค.

git hub ssh

  • git config user.email

  • git config user.name

  • ์œ„ ๋‘ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์–ด๋А ์ €์žฅ์†Œ๋“  ์ •๋ณด๋ฅผ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด git hub ๋Š” ssh (secure shell) ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

Add Github Repo

  • Github ์ƒˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ.
  • ์ƒˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ ์ €์žฅ ํ›„ ์ €์žฅ์†Œ๋กœ ์˜ฌ๋ฆด git directory ์„ ํƒ
  • cmd ์—ด๊ณ , git remote add [name] [url] ๋กœ ํด๋ผ์šฐ๋“œ ์—ฐ๊ฒฐํ•˜๊ธฐ.
  • origin์ด๋ž€ ?
    • ์˜ค๋ฆฌ์ง„์€ ์ผ๋ฐ˜์ ์ธ ๊นƒ ์›๊ฒฉ ์ด๋ฆ„์ด๋‹ค.

๋ฉ”์ธ ๋ฐ ๋งˆ์Šคํ„ฐ : ๊ธฐ๋ณธ๋ธŒ๋žœ์น˜

  • ๋ณดํ†ต ๋ฉ”์ธ์ด๋‚˜ ๋งˆ์Šคํ„ฐ๋ฅผ ๊ฐ™์ด ๋ธŒ๋žœ์น˜๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. git branch -M [branch-name] ์„ ํ†ตํ•ด ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆœ ์žˆ์œผ๋‚˜, ๊ธฐ์กด ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋กœ ํ‘ธ์‹œํ•˜๋‹ค๊ฐ€ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ํด๋ผ์šฐ๋“œ๋Š” ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ฅผ ๋””ํดํŠธ๋กœ ์žก๋Š”๋‹ค.
  • ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด settings -> branchs -> Default branch์—์„œ ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋œ๋‹ค.

์›๊ฒฉ ์ถ”์  ๋ธŒ๋žœ์น˜๋กœ ์ž‘์—…ํ•˜๊ธฐ

  • ํด๋ผ์šฐ๋“œ์— ์˜ฌ๋ผ๊ฐ„ origin/[branch] ๊ฐ€ ๋กœ์ปฌ์— branch ๋ชฉ๋ก์— ์—†๋‹ค๊ณ  ํ•˜๋”๋ผ๊ณ  git switch [branch] ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊นƒ์ด ๋กœ์ปฌ์—์„œ ๊ทธ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค๊ณ  ๋™์ผํ•œ ์ด๋ฆ„์˜ ์›๊ฒฉ ๋ธŒ๋žœ์น˜๋ฅผ ์ถ”์ ํ•˜๋„๋ก ์ž๋™์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

git fetch, git pull

  • Git fetch : ํด๋ผ์šฐ๋“œ์— ์ €์žฅ๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋กœ์ปฌ์— ์ž‘์—…๊ณผ๋Š” ํ†ตํ•ฉ๋˜์ง€ ์•Š๋Š”๋‹ค.)
  • Git Pull : ํด๋ผ์šฐ๋“œ์— ์ €์žฅ๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๊ฐ€์ ธ์˜ค๋ฉฐ, ๋กœ์ปฌ์˜ ์ž‘์—…๊ณผ ํ†ตํ•ฉ๋œ๋‹ค.

Github ๊ณต๋™์ž‘์—…์ž ์ถ”๊ฐ€ํ•˜๊ธฐ

  • ๊ณต๋™ ์ž‘์—…์ž๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅ์†Œ์— ํ‘ธ์‹œํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ํ•œ์ชฝ์—์„œ ์ผ๋ฐฉ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ์ดˆ๋Œ€๋  ์ˆ˜ ์—†๋‹ค.
  • ๊ณต๋™์†Œ์œ ์ž๋Š” ์ปค๋ฐ‹ ๋“ฑ ์ €์žฅ์†Œ์— ๋ฆฌ๋ชจํŠธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์„ธํŒ…์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

README๋ž€

  • ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฌด์Šจ ์ผ์„ ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ์ด๋‹ค.

Git Gists

  • ๊นƒํ—ˆ๋ธŒ ์ง€์ŠคํŠธ๋Š” ์ฝ”๋“œ ์กฐ๊ฐ์„ ๊ฐ„๋‹จํžˆ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์™„์ „ํ•œ ๊นƒํ—ˆ๋ธŒ๋ฅผ ๋งŒ๋“ค๊ณ  ํ‘ธ์‰ฌํ•˜์—ฌ ํด๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ๋ฐ˜๋ฉด ์ง€์ŠคํŠธ๋Š” ๋‹จ์ˆœ ์ฝ”๋“œ๋‚˜ ์ž๋ฃŒ๋ฅผ ์˜ฌ๋ ค์„œ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‚ฌ์šฉ๋ฐฉ๋ฒ•
    • Github ๋กœ๊ทธ์ธ
    • ์šฐ์ธก ์ƒ๋‹จ์— ๋‚˜์˜ ๊นƒํ—ˆ๋ธŒ ํด๋ฆญ
    • your gists ํด๋ฆญ
    • ์šฐ์ธก ์ƒ๋‹จ +๋ฒ„ํŠผ ํด๋ฆญํ•˜์—ฌ ์ง€์ŠคํŠธ ์ถ”๊ฐ€
    • all gistsํด๋ฆญ ํ›„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ gists ๊ณต์œ  ๊ฐ€๋Šฅ

Git pages

  • ๊นƒํ—ˆ๋ธŒ ๋ฐ–์œผ๋กœ ์›น ํŽ˜์ด์ง€๋ฅผ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
  • ๋‹จ, ์ •์  ์›น ํŽ˜์ด์ง€ ์™ธ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์—†๋‹ค.
  • ๊นƒํ—ˆ๋ธŒ ํŽ˜์ด์ง€์—๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ์‚ฌ์ดํŠธ
      • ๊นƒํ—ˆ๋ธŒ ๊ณ„์ •๋‹น ํ•˜๋‚˜์”ฉ์œผ๋กœ ์ œํ•œ๋œ๋‹ค.
      • [์‚ฌ์šฉ์ž์ด๋ฆ„.github.io] ํ˜•์‹์˜ url ์œ ํ˜•
    • ํ”„๋กœ์ ํŠธ ์‚ฌ์ดํŠธ
      • ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ๋ชจ๋“  ๊นƒํ—ˆ๋ธŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ํ˜ธ์ŠคํŒ…๋œ ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
      • [username.github.io/repo-name] ํ˜•์‹์˜ url์œ ํ˜•

๊นƒํ—ˆ๋ธŒ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

  1. ๊นƒํ—ˆ๋ธŒ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์„ ํƒํ•œ๋‹ค.
  2. Settings ์— ๋“ค์–ด๊ฐ€์„œ ์ œ์ผ ์•„๋ž˜ GitHub Pages์˜์—ญ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
  3. ๋ธŒ๋žœ์น˜ ํ˜น์€ ํŠน์ • html์„ ์ง€์ •ํ•œ๋‹ค.
  4. ์„ค์ •์„ ๋งˆ์น˜๋ฉด url์„ ์•Œ๋ ค์ค€๋‹ค.

ํ˜‘์—… ์›Œํฌํ”Œ๋กœ์šฐ

  • ์ค‘์•™ ์ง‘์ค‘ํ˜• ์›Œํฌํ”Œ๋กœ์šฐ

    • ๋‹จ์ผ ๋ธŒ๋žœ์น˜๋กœ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ์ž‘์—…ํ•œ๋‹ค.
    • ์—ฌ๋Ÿฌ ๋ธŒ๋žœ์น˜๋ฅผ ํ‘ธ์‹œ, ํ’€ํ•˜๊ณ  ๋จธ์ง€ํ•œ๋‹ค.
    • ๋‹จ์ 
      1. 3๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์กด์žฌํ•  ๋•Œ C๊ฐ€ 2๊ฐœ์˜ ์ปค๋ฐ‹์„ ํ‘ธ์‹œํ•œ ์ƒํƒœ์—์„œ B๊ฐ€ 1๊ฐœ๋ฅผ ์ปค๋ฐ‹ํ•˜๊ณ  ํ‘ธ์‹œํ•  ๋•Œ ์ด๋ฏธ ์ €์žฅ์†Œ์—๋Š” ํ‘ธ์‹œ๊ฐ€ ์ง„ํ–‰๋˜์–ด์žˆ์–ด์„œ B์˜ ํ‘ธ์‹œ๊ฐ€ ๊ฑฐ๋ถ€๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒ.
      2. ๋ฏธ์™„์„ฑ์˜ ์ฝ”๋“œ๋ฅผ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ›์„ ๋•Œ์—๋„ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜•์ƒ๊ด€๋ฆฌ๊ฐ€ ํž˜๋“ค๋‹ค.
  • ๋ถ„์‚ฐํ˜• ์›Œํฌํ”Œ๋กœ์šฐ (ํ”ผ์ฒ˜ ๋ธŒ๋žœ์น˜)

    • ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•˜์ง€ ์•Š๊ณ  ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ž‘์—…ํ•˜์—ฌ ํ‘ธ์‹œํ•œ๋‹ค.
    • ์žฅ์ 
      1. ๋ฏธ์™„์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๊ฒ€์‚ฌํ•  ๋•Œ์—๋„ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์˜ ๋ฌด๊ฒฐ์„ฑ์ด ๋ฌด๋„ˆ์ง€์ง€ ์•Š๋Š”๋‹ค.
      2. A๊ฐ€ B์—๊ฒŒ ์ฝ”๋“œ๋ฅผ ๊ฒ€์‚ฌ๋ฐ›์„ ๋•Œ์—๋„ B์˜ ์ž‘์—…์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ , A์˜ ๋ธŒ๋žœ์น˜๋ฅผ Pullํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ธŒ๋žœ์น˜๋ช…์€ feat(feature)/branch-name, bug/branch-name, fix/branch-name ๋“ฑ์˜ ์ ‘๋‘์‚ฌ๋ฅผ ๋ถ™์ธ๋‹ค.

Pull Requests

  • ํ˜‘์—…์—์„œ ๋ฉ”์ธ์ด ์•„๋‹Œ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•œ ๋‚ด์šฉ์„ ๋ณ‘ํ•ฉํ•ด๋„ ๋˜๋Š”์ง€ ํŒ€์› ํ˜น์€ ๊ณต๋™ ์ž‘์—…์ž๋“ค์—๊ฒŒ ๊ฒ€ํ† ๋ฅผ ์š”์ฒญํ•˜๊ณ  ๋ณ‘ํ•ฉ์„ ์Šน์ธ ํ˜น์€ ๋ฐ˜๋ ค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์žฅ์น˜์ด๋‹ค.
  • PR ์‹œ ๋‚ด์šฉ์— ๋ฉ˜์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. [@github_name]
  • PR ์ค‘ ์ถฉ๋Œ ๋ฐœ์ƒ ํ•ด๊ฒฐํ•˜๊ธฐ.
    • PR ์š”์ฒญ ์ค‘ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋”๋ผ๋„ PR์„ ์š”์ฒญํ•  ์ˆœ ์žˆ๋‹ค.
    • ์ €์žฅ์†Œ์˜ ๊ณต๋™์ž‘์—…์ž๋ผ๋ฉด Resolve conflicts ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค. [์ด ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•œ ๋ณ‘ํ•ฉ๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.]
    • ํ•˜๋‹จ Merge pull request ๋ฒ„ํŠผ ์˜†์— view command line instructions ์˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ„ฐ๋ฏธ๋„์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณ‘ํ•ฉ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
      1. cmd ์—ด๊ธฐ
      2. git fetch origin
      3. git switch [์ถฉ๋Œ๋‚œ ๋ธŒ๋žœ์น˜๋ช…]
      4. git merge [master-branch]
      5. ์ˆ˜์ • ํ›„ ์ปค๋ฐ‹ํ•œ๋‹ค.
      6. ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋กœ ๋Œ์•„์™€์„œ git merge --no-ff [feature-branch-name]
      7. git push origin master

๋ธŒ๋žœ์น˜ ๋ณดํ˜ธ๊ทœ์น™ ๊ตฌ์„ฑํ•˜๊ธฐ

  • repository settings์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ธŒ๋žœ์น˜์˜ ์ด๋ฆ„์ด ์•„๋‹Œ ํŒจํ„ด์„ ํ†ตํ•ด์„œ ์ƒ์„ฑ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. (๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ)
  • Require Pull Request ์˜ต์…˜์€ PR์„ ์Šน์ธํ•  ๋•Œ์—๋งŒ ์ปค๋ฐ‹์„ ๋จธ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

Fork

  • ์ˆ˜๋งŽ์€ ์‚ฌ๋žŒ์ด ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์š”ํ•˜๋‹ค. ๊ถŒํ•œ ์—†์ด๋„ ๋ˆ„๊ตฌ๋‚˜ ๊ธฐ์—ฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ Repository๋ฅผ ๋‚ด Repository๋กœ ์ƒ์„ฑํ•œ๋‹ค.
  • ๊นƒํ—ˆ๋ธŒ์˜ ๊ธฐ๋Šฅ์ด๋‹ค. ๊นƒ์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

Git Rebase

  • ๊นƒ ๋จธ์ง€ ๋Œ€์‹  ์‚ฌ์šฉํ•œ๋‹ค
  • ๊นƒ์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ง€์šฐ๋Š” ์ž‘์—…์— ์‚ฌ์šฉํ•œ๋‹ค.
    • ๊นƒ ๋ฆฌ๋ฒ ์ด์Šค์™€ ๊นƒ ๋จธ์ง€์˜ ์ฐจ์ด์ 
      • ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž์™€ ์ž‘์—…์„ ํ•  ๊ฒฝ์šฐ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ํ‘ธ์‹œ๊ฐ€ ๋˜๋ฉด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋Š” ์ž‘์—…์„ ํ•˜๊ธฐ์œ„ํ•ด ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์˜ ์ˆ˜์ •์‚ฌํ•ญ์„ ํ•ฉ์น˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋•Œ merge๋ฅผ ์“ฐ๋ฉด ํ•ฉ์น  ๋•Œ๋งˆ๋‹ค ๋จธ์ง€์ปค๋ฐ‹์ด ์ƒ์„ฑ๋œ๋‹ค. ์ฆ‰ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๋”๋Ÿฌ์›Œ์ง„๋‹ค.
      • ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฆฌ๋ฒ ์ด์Šค๋Š” ํ•ด๊ฒฐํ•ด์ค€๋‹ค. ๋ฆฌ๋ฒ ์ด์Šค๋ฅผ ํ•˜๋ฉด ๊นƒ ์ด๋ ฅ์„ ์žฌ์ž‘์„ฑํ•œ๋‹ค. ๋ฆฌ๋ฒ ์ด์Šค๋ž€ feature ๋ธŒ๋žœ์น˜์˜ ๋ฒ ์ด์Šค๋ฅผ ์ƒˆ๋กœ ์„ค์ •ํ•œ๋‹ค.
  • ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผํ•˜๋Š” ๋ช…๋ น์–ด๋Š” ์•„๋‹ˆ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages