Skip to content

๐Ÿ“šํšจ์œจ์ ์ธ App ๋ฒ„์ „ ๊ด€๋ฆฌ == โš™ git ๊ด€๋ฆฌ

License

Notifications You must be signed in to change notification settings

Caramel1004/git-cli-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

24 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“šํšจ์œจ์ ์ธ App ๋ฒ„์ „ ๊ด€๋ฆฌ == โš™ git ๊ด€๋ฆฌ


๋ชฉ์ฐจ

  1. git ์ดˆ๊ธฐ ์„ค์ • ๋ฐ ํ™•์ธ
  2. git ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•˜์—ฌ ์—ฐ๊ฒฐ
  3. git ์„œ๋ฒ„์— ์˜ฌ๋ ค์ง„ ์›๊ฒฉ ์ €์žฅ์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ
  4. git ๋ณ€๊ฒฝ๋œ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ

git ๋ช…๋ น์–ด ํ•œ๋ฒˆ์— ๋ณด๊ธฐ: git ๋ช…๋ น์–ด ํ•œ๋ฒˆ์— ๋ณด๊ธฐ

git ์ดˆ๊ธฐ ์„ค์ • ๋ฐ ํ™•์ธ

  • git ๋‹‰๋„ค์ž„ ์„ค์ •
git config --global user.name "(๋ณธ์ธ์ด ์„ค์ • ํ•  ๋‹‰๋„ค์ž„)"
  • git ์ด๋ฉ”์ผ ์„ค์ •
git config --global user.email "(๋ณธ์ธ ์ด๋ฉ”์ผ)"
  • git ์„ค์ •๋œ ๋‹‰๋„ค์ž„ ํ™•์ธ
git config --global user.name
  • git ์„ค์ •๋œ ์ด๋ฉ”์ผ ํ™•์ธ
git config --global user.email
  • git ๋ธŒ๋žœ์น˜ ๋ช… ์„ค์ •
git config --global init.defaultBranch main
  • git์— ์„ค์ •๋œ ๋ชฉ๋ก ๋ณด๊ธฐ
    • vi ์—๋””ํ„ฐ์—์„œ ๋‚˜๊ฐ€๊ธฐ : Control + z
git config --list

OR

git config -l

git ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•˜์—ฌ ์—ฐ๊ฒฐ

- git ์„œ๋ฒ„์— ์›๊ฒฉ ์ €์žฅ์†Œ ์ƒ์„ฑ

  1. ๋‚ด github์— ์ ‘์† ํ›„ ๋งจ ์ƒ๋‹จ์— repositories ํด๋ฆญ
  2. ์ƒ๋‹จ ๋งจ ์˜ค๋ฅธ์ชฝ์— ์ดˆ๋ก์ƒ‰ New ๋ฒ„ํŠผ ํด๋ฆญ
  3. (์„ ํƒ ์‚ฌํ•ญ)README.md๋ฅผ ์ƒ์„ฑ

- ๋กœ์ปฌ ์„œ๋ฒ„์—์„œ git์— ์—…๋กœ๋“œ ํ•  ์†Œ์Šค ์ฝ”๋“œ ํด๋”์— ๋กœ์ปฌ ์ €์žฅ์†Œ ์ƒ์„ฑ

  • 1. ํ„ฐ๋ฏธ๋„์—์„œ ์—…๋กœ๋“œ ํ•  ์†Œ์Šค์ฝ”๋“œ ํด๋”๋กœ ์ด๋™

  • vscode or intellij๋กœ ํ•ด๋‹น ์†Œ์Šค์ฝ”๋“œ ํด๋”๋ฅผ ์—ด์—ˆ๋‹ค๋ฉด
    ํ„ฐ๋ฏธ๋„์— ์ด๋ฏธ ํ•ด๋‹น ํด๋”์— ์œ„์น˜ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • iTerm2 OR Terminal OR gitbash๋ฅผ ์ด์šฉํ•œ๋‹ค๋ฉด ํ•ด๋‹น ํด๋”๋กœ ์ด๋™ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    ์•„๋ž˜ ๋ช…๋ น๋กœ ํ•ด๋‹น ํด๋”๋กœ ์ด๋™ ํ•ฉ๋‹ˆ๋‹ค.
cd ~/desktop/...
  • 2. ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ ์ƒ์„ฑ

git init
  • 3 . ๋กœ์ปฌ ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€๋œ ํŒŒ์ผ ์Šคํ…Œ์ด์ง•์— ์ถ”๊ฐ€

  • ๋กœ์ปฌ ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€๋œ ๋ชจ๋“  ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง•์— ์ถ”๊ฐ€
git add .
git add *
  • ๋กœ์ปฌ ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€๋œ ์ผ๋ถ€ ํŒŒ์ผ ์„ ํƒํ•ด์„œ ์Šคํ…Œ์ด์ง•์— ์ถ”๊ฐ€
git add <ํŒŒ์ผ ์ด๋ฆ„ or ํด๋” ์ด๋ฆ„>
  • 4. ๋กœ์ปฌ ์„œ๋ฒ„์—์„œ ์Šคํ…Œ์ด์ง•๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋“ค์„ ์ปค๋ฐ‹

  • ๊ฐ„๊ฒฐํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ
git commit -m "๋ฉ”์„ธ์ง€ ์ž…๋ ฅ"
  • ๋””ํ…Œ์ผํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ
    • commit ํ›„ ์ž‘์„ฑ ์ฐฝ์—์„œ ์ž์„ธํžˆ ์ž…๋ ฅ
git commit
  • ์Šคํ…Œ์ด์ง• ์ถ”๊ฐ€ ๊ณผ์ •๊ณผ ์ปค๋ฐ‹์„ ๋™์‹œ์— ํ•˜๋Š” ๊ฒฝ์šฐ
git commit -am "๋ฉ”์„ธ์ง€ ์ž…๋ ฅ"
  • 5. ์ตœ์ดˆ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ

  • ๋ณดํ†ต ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜๋ช…์€ main ๊ถŒ์žฅ
    • tmi๋กœ ์›๋ž˜๋Š” ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜๋ช…์œผ๋กœ master๋ผ๋Š” ์šฉ์–ด๋ฅผ ๋งŽ์ด ์‚ฌ์šฉ ๋˜์–ด ์™”๊ณ 
      ๋ธŒ๋žœ์น˜๋ฅผ ์ถ”๊ฐ€ํ• ๋•Œ slave๋ผ๋Š” ์šฉ์–ด๊ฐ€ ๋ณดํŽธ์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜์–ด ์™”์ง€๋งŒ
      ์ด๋Š” ์ธ์ข…์ฐจ๋ณ„์  ์˜๋ฏธ๊ฐ€ ์žˆ์–ด ์‚ฌ์šฉ์„ ์ง€์–‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
git branch -M main

- ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ

  • 6. git ์›๊ฒฉ ์ €์žฅ์†Œ ์—ฐ๊ฒฐ

  • ์›๊ฒฉ ์ €์žฅ์†Œ ์กฐํšŒ
    • ์ถ”๊ฐ€๋œ ์›๊ฒฉ ์ €์žฅ์†Œ๊ฐ€ ์—†์œผ๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์—†์Œ
    • ์ถ”๊ฐ€๋œ ์›๊ฒฉ ์ €์žฅ์†Œ๊ฐ€ ์žˆ์œผ๋ฉด ์ถ”๊ฐ€๋œ ์›๊ฒฉ ์ €์žฅ์†Œ URL ์žˆ์Œ
git remote -v
  • ์›๊ฒฉ ์ €์žฅ์†Œ ์ถ”๊ฐ€
    • ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋กœ์ปฌ ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ
git remote add origin https://github.com/....
  • ์›๊ฒฉ ์ €์žฅ์†Œ ์ˆ˜์ •
git remote set-url origin https://github.com/....
  • ์›๊ฒฉ ์ €์žฅ์†Œ ์‚ญ์ œ
git remote remove origin
  • 7. git ์›๊ฒฉ ์ €์žฅ์†Œ์— ์ดˆ๊ธฐ ๋ธŒ๋žœ์น˜ ๋“ฑ๋ก ๋ฐ ์ปค๋ฐ‹ ๋‚ด์šฉ push

  • ์›๊ฒฉ ์ €์žฅ์†Œ์— ์ด๋ฏธ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ == ์ฒ˜์Œ repository์ƒ์„ฑ ํ•  ๋•Œ ๋ฆฌ๋“œ๋ฏธํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•œ ๊ฒฝ์šฐ
    • ์ด ๊ฒฝ์šฐ๋Š” ๋ฐ˜๋“œ์‹œ pullํ•˜๊ณ  push์ง„ํ–‰
git pull <๋ฆฌ๋ชจํŠธ ๋ช…> <๋ธŒ๋žœ์น˜ ๋ช…>
  • ์˜ˆ์‹œ
git pull origin main
  • ์›๊ฒฉ ์ €์žฅ์†Œ์— ํŒŒ์ผ์ด ์•„์˜ˆ ์—†๋Š” ๊ฒฝ์šฐ == ์ฒ˜์Œ repository์ƒ์„ฑ ํ•  ๋•Œ ๋ฆฌ๋“œ๋ฏธํŒŒ์ผ ์ถ”๊ฐ€ ์•ˆํ•œ ๊ฒฝ์šฐ
git push -u origin main

OR

git push --set-upstream origin main

git ์„œ๋ฒ„์— ์˜ฌ๋ ค์ง„ ์›๊ฒฉ ์ €์žฅ์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ

  • 1. ์›๊ฒฉ ์ €์žฅ์†Œ ๋ณต์ œ

- ์›ํ•˜๋Š” ํด๋”๋กœ ์ด๋™ ํ›„ ๊ทธ ํด๋”์— ํด๋ก  ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
 git clone <์›๊ฒฉ ์ €์žฅ์†Œ URL>
  • ์˜ˆ์‹œ
 git clone https://github.com/Caramel1004/git-cli.git

git ๋ณ€๊ฒฝ๋œ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ

  • 1. ๋กœ์ปฌ์„œ๋ฒ„์—์„œ ์ž‘์—… ํ›„ ์Šคํ…Œ์ด์ง• ์˜์—ญ์œผ๋กœ ์˜ฌ๋ฆผ

    • git add . ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ํŒŒ์ผ์„ ์˜ฌ๋ ค ์ปค๋ฐ‹ํ•˜๋Š”๊ฒƒ์„ ์ง€์–‘ ํ•ฉ๋‹ˆ๋‹ค.
 git add <ํŒŒ์ผ๋ช… or ํด๋”๋ช…>
  • 2. ์Šคํ…Œ์ด์ง• ์˜์—ญ์œผ๋กœ ์˜ฌ๋ฆฐ ํŒŒ์ผ ๋ฐ ํด๋” ์ปค๋ฐ‹

    • ํŒŒ์ผ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ์ •ํ™•ํ•˜๊ฒŒ ๊ธฐ๋กํ•˜๋Š”๊ฑธ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค.
 git commit -m "์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง"
  • 3. ์ปค๋ฐ‹ ์ „์— pull

    • ๋งŒ์•ฝ ๋‹ค๋ฅธ ํŒ€์›๊ณผ ํ˜‘์—…์„ ์ง„ํ–‰ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด pull๋จผ์ € ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
      pull์—†์ด pushํ–ˆ๋‹ค๊ฐ€ ๋ณ€๊ฒฝ๋‚ด์šฉ์ด ๋’ค์„ž์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
 git pull
 git push
  • (์„ ํƒ์‚ฌํ•ญ) 4. git ๋กœ๊ทธ ํ™•์ธ

    • pull push๊ฐ€ ์ž˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค.
 git log

git ๋ช…๋ น์–ด ํ•œ๋ฒˆ์— ๋ณด๊ธฐ

์ €์žฅ์†Œ ๋ณต์ œ/๋‹ค์šด๋กœ๋“œ(clone)

git clone <https:.. URL>
git clone /๋กœ์ปฌ/์ €์žฅ์†Œ/๊ฒฝ๋กœ
git clone ์‚ฌ์šฉ์ž๋ช…@ํ˜ธ์ŠคํŠธ:/์›๊ฒฉ/์ €์žฅ์†Œ/๊ฒฝ๋กœ

์Šคํ…Œ์ด์ง•์— ์ถ”๊ฐ€

  • ๋ชจ๋“  ํŒŒ์ผ or ํด๋”
git add *
  • ์„ ํƒ ํŒŒ์ผ
git add <ํŒŒ์ผ๋ช…> or ํด๋”

์ปค๋ฐ‹๋œ ํŒŒ์ผ ๋‚ด์šฉ ์กฐํšŒ

git status

commit

  • ๊ฐ„๊ฒฐํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ
git commit -m "๋ฉ”์„ธ์ง€ ์ž…๋ ฅ"
  • ๋””ํ…Œ์ผํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ
    • commit ํ›„ ์ž‘์„ฑ ์ฐฝ์—์„œ ์ž์„ธํžˆ ์ž…๋ ฅ
git commit
  • ์Šคํ…Œ์ด์ง• ์ถ”๊ฐ€ ๊ณผ์ •๊ณผ ์ปค๋ฐ‹์„ ๋™์‹œ์— ํ•˜๋Š” ๊ฒฝ์šฐ
git commit -am "๋ฉ”์„ธ์ง€ ์ž…๋ ฅ"

branch

  • ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก ์กฐํšŒ
git branch
  • ์ƒˆ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
git branch <๋ธŒ๋žœ์น˜๋ช…>
  • ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ํ›„ ์ƒ์„ฑ๋œ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™
git checkout -b <๋ธŒ๋žœ์น˜๋ช…>
  • ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ด๋™
git checkout <๋ธŒ๋žœ์น˜๋ช…>
  • ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ์ƒํƒœ์˜ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™
git checkout -f <๋ธŒ๋žœ์น˜๋ช…>
  • ๋ธŒ๋žœ์น˜๋ช… ์ˆ˜์ •
git branch -m <๊ธฐ์กด ๋ธŒ๋žœ์น˜๋ช…> <์ƒˆ ๋ธŒ๋žœ์น˜๋ช…>
  • ๋ธŒ๋žœ์น˜ ์‚ญ์ œ
git branch -d <๋ธŒ๋žœ์น˜๋ช…>

์›๊ฒฉ ์ €์žฅ์†Œ ์—ฐ๊ฒฐ

  • ์›๊ฒฉ ์ €์žฅ์†Œ ์กฐํšŒ
    • ์ถ”๊ฐ€๋œ ์›๊ฒฉ ์ €์žฅ์†Œ๊ฐ€ ์—†์œผ๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์—†์Œ
    • ์ถ”๊ฐ€๋œ ์›๊ฒฉ ์ €์žฅ์†Œ๊ฐ€ ์žˆ์œผ๋ฉด ์ถ”๊ฐ€๋œ ์›๊ฒฉ ์ €์žฅ์†Œ URL ์žˆ์Œ
git remote -v
  • ์›๊ฒฉ ์ €์žฅ์†Œ ์ถ”๊ฐ€
    • ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋กœ์ปฌ ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ
git remote add origin https://github.com/....
  • ์›๊ฒฉ ์ €์žฅ์†Œ ์ˆ˜์ •
git remote set-url origin https://github.com/....
  • ์›๊ฒฉ ์ €์žฅ์†Œ ์‚ญ์ œ
git remote remove origin
  • ์›๊ฒฉ ์ €์žฅ์†Œ ์ˆ˜์ •
git remote set-url origin https://github.com/....

์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ธŒ๋žœ์น˜ ๋“ฑ๋ก

  • ์›๊ฒฉ ์ €์žฅ์†Œ์— ์–ด๋– ํ•œ ํŒŒ์ผ๋„ ์—†๋Š” ๊ฒฝ์šฐ ๋ฐ”๋กœ push

  • ์›๊ฒฉ ์ €์žฅ์†Œ์— ํŒŒ์ผ ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด pull๋กœ ๋ฐ›๊ณ  pull๋กœ ๋ฐ›์œผ๋ฉด main ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ๋˜๊ธฐ๋–„๋ฌธ์— pushํ•  ํ•„์š” ์—†์Œ

  • ์›๊ฒฉ์— ์ €์žฅ๋œ git ํ”„๋กœ์ ํŠธ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋‹ค์šด๋ฐ›๊ณ  + ํ˜„์žฌ ์œ„์น˜ํ•œ ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ
git pull <๋ฆฌ๋ชจํŠธ๋ช…> <๋ธŒ๋žœ์น˜๋ช…>
  • ๋ณดํŽธ์ ์œผ๋กœ ๋ฆฌ๋ชจํŠธ๋ช…์„ origin์œผ๋กœ ๋ช…๋ช…ํ•ฉ๋‹ˆ๋‹ค.
    ๋‹ค๋ฅธ ๋ฆฌ๋ชจํŠธ๋ช…์œผ๋กœ ๋ฐ”๊ฟ”๋„ ์ƒ๊ด€์€ ์—†์Šต๋‹ˆ๋‹ค.
git pull origin main
  • ๋งŒ๋“  ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์„œ๋ฒ„์— ์ „์†ก or ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ push
git push -u <remote๋ช…> <๋ธŒ๋žœ์น˜์ด๋ฆ„>
  • ๋ณดํŽธ์ ์œผ๋กœ ๋ฆฌ๋ชจํŠธ๋ช…์„ origin์œผ๋กœ ๋ช…๋ช…ํ•ฉ๋‹ˆ๋‹ค.
    ๋‹ค๋ฅธ ๋ฆฌ๋ชจํŠธ๋ช…์œผ๋กœ ๋ฐ”๊ฟ”๋„ ์ƒ๊ด€์€ ์—†์Šต๋‹ˆ๋‹ค.
git push -u origin main

OR

git push --set-upstream origin main

merge

  • ํ˜„์žฌ ๋ธŒ๋žœ์น˜์— ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์˜ ์ˆ˜์ •์‚ฌํ•ญ ๋ณ‘ํ•ฉ
git merge <๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋ช…>

git ๊ธฐ๋ก ์กฐํšŒ

  • ๋ณ€๊ฒฝ ๋‚ด์šฉ merge ์ „์— ๋ฐ”๋€ ๋‚ด์šฉ์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Œ
git diff <๋ธŒ๋žœ์น˜๋ช…> <๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋ช…>	
  • ํ˜„์žฌ ์œ„์น˜ํ•œ ๋ธŒ๋žœ์น˜ ์ปค๋ฐ‹ ๋‚ด์šฉ ํ™•์ธ ๋ฐ ์‹๋ณ„์ž ๋ถ€์—ฌ๋จ
git log

About

๐Ÿ“šํšจ์œจ์ ์ธ App ๋ฒ„์ „ ๊ด€๋ฆฌ == โš™ git ๊ด€๋ฆฌ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published