Kimsoraโœจ
article thumbnail
320x100
๋ฐ˜์‘ํ˜•

๐ŸงฉGit

-๋ถ„์‚ฐ ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ ์ปดํ“จํ„ฐ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ถ”์ฒ™ํ•˜๊ณ  ์—ฌ๋Ÿฌ๋ช…์˜ ์‚ฌ์šฉ์ž๋“ค ๊ฐ„์— ํŒŒ์ผ์— ๋Œ€ํ•œ ์ž‘์—…์„ ์กฐ์œจํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค

=>์—ฌ๋Ÿฌ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•˜๋‚˜์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•  ๋•Œ ์†Œ์Šค์ฝ”๋“œ ๊ด€๋ฆฌ ํ•˜๋Š”๋ฐ ์ฃผ๋กœ์‚ฌ์šฉํ•œ๋‹ค

 

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

=> ๊ฐ๊ฐ์˜ Branch ์—์„œ ๊ฐœ๋ฐœํ•œ ํ•ฉ์น˜๋Š” merge ๋ฐฉ์‹์„ ํ†ตํ•œ ๋ณ‘๋ ฌ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ

 

 

 

 

๐ŸงฉGithub

-๊นƒ์„ ์‚ฌ์šฉํ•˜๋Š” ์ธ ๋กœ์ ํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” ์›น ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค

 

Git ์„ค์น˜

Git์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์šฐ์„  Git์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋งํฌ์—์„œ Git์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค

 

Git ๊ตฌ์กฐ

 

staging area

  • commit์„ ํ•˜๊ธฐ ์ „์— commitํ•  ํŒŒ์ผ๋“ค์„ ๊ณจ๋ผ๋†“๋Š” ๊ณณ
  • staging area์— ํŒŒ์ผ๋„ฃ๋Š” ํ–‰์œ„๋ฅผ staging์ด๋ผ๋ถ€๋ฅธ๋‹ค
  • git add ๋ช…๋ น์–ด๋กœ staging ํ•  ์ˆ˜ ์žˆ๋‹ค

 

repository

    • commit๋œ ํŒŒ์ผ์˜ ๋ฒ„์ „๋“ค์„ ๋ชจ์•„๋†“๋Š” ๊ณณ
    • repository์˜ ์‹ค์ฒด๋ฅผ ๊ตฌ๊ฒฝํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ž‘์—…ํด๋”์•ˆ์— ์ˆจ๊ฒจ์ ธ ์žˆ๋Š” .git ํด๋” ์—ด์–ด๋ณด๋ฉด ๋œ๋‹ค

git config --global user.email "๋ž„๋ž„๋ž„@naver.com"
git config --global user.name "๋กค๋กค๋กค"

 

Git ์ €์žฅ์†Œ ์ดˆ๊ธฐํ™”

-ํŒŒ์ผ์ƒ์„ฑํ•˜๋Š”๊ฑฐ, ์ฝ”๋“œ์ž‘์„ฑํ•˜๋Š”๊ฑธ ์ถ”์ ํ•˜๊ธฐ ์‹œ์ž‘

- local repository๊ฐ€ ์ƒ์„ฑ

git init

 

๋ณ€๊ฒฝ ๋‚ด์šฉ ์ถ”์ 

  • git add ํŒŒ์ผ๋ช…
    -staging area๋กœ ์˜ฎ๊ธธ ๋•Œ ์‚ฌ์šฉ
  • git commit -m '๋ฉ”์„ธ์ง€ ๊ธฐ๋ก'
    -staging area์— ์žˆ๋Š” ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ local reposiotry์— ์ €์žฅ
  • git add ํŒŒ์ผ๋ช…1 ํŒŒ์ผ๋ช…2
    -์—ฌ๋ŸฌํŒŒ์ผ ๋™์‹œ์— ์Šคํ…Œ์ด์ง•
  • git add .
    -์ž‘์—…ํด๋”์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ์ „๋ถ€ ์Šคํ…Œ์ด์ง•
  • git status
    -์ƒํƒœ์ฐฝ ์ง€๊ธˆ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ, ์Šคํ…Œ์ด์ง•๋œ ํŒŒ์ผ ์•Œ๋ ค์คŒ
  • git commit --amend -m "์ƒˆ๋กœ์šด ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€"
    -์ด๋ฏธ commitํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
  • git log
    -commit ๋กœ๊ทธ๋ฅผ ํ™•์ธ

 

git branch

  • git branch
    -๋กœ์ปฌ์— ์žˆ๋Š” ๋ธŒ๋žœ์น˜ ์กฐํšŒ
  • git branch --all
    -์›๊ฒฉ ํฌํ•จ ์ „์ฒด ์กฐํšŒ
  • git branch feature1   
    -์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜์ƒ์„ฑ
  • git branch feature1  feature2
    -๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ
  • git branch feature1 origin/master
    -origin/master๋กœ๋ถ€ํ„ฐ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
  • git branch -d <๋ธŒ๋žœ์น˜์ด๋ฆ„>
    -๋ธŒ๋žœ์น˜ ์‚ญ์ œ
  • git branch -D <๋ธŒ๋žœ์น˜์ด๋ฆ„>
    -๋ณ‘ํ•ฉํ•˜์ง€ ์•Š์€ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ์‹œ
  • git switch <๋ธŒ๋žœ์น˜์ด๋ฆ„>
    -๋ธŒ๋žœ์น˜ ์ด๋™

 

git merge

  • git merge feature1
    -ํ˜„์žฌ ๋ธŒ๋žœ์น˜์—์„œ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋ฅผ mergeํ• ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด
  • Merge Commit
    -ํ•˜๋‚˜์˜ ๋ธŒ๋žœ์น˜์™€ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ ์ด๋ ฅ ์ „์ฒด๋ฅผ ํ•ฉ์น˜๋Š” ๋ฐฉ๋ฒ•

  • Squash and Merge
    -feature ๋ธŒ๋žœ์น˜์˜ commit history๋ฅผ ํ•ฉ์ณ์„œ ๊น”๋”ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

  • Rebase and Merge
    -๋ชจ๋“  commit๋“ค์ด ํ•ฉ์ณ์ง€์ง€ ์•Š๊ณ  ๊ฐ๊ฐ master ๋ธŒ๋žœ์น˜์— ์ถ”๊ฐ€๋œ๋‹ค=>๊ฐ commit์€ ๋ชจ๋‘ ํ•˜๋‚˜์˜ parent๋ฅผ ๊ฐ€์ง„๋‹ค.
    =>๊ธฐ๋ก์ด ๋‚จ์ง€ ์•Š์•„ ๋งˆ์น˜ ํ•˜๋‚˜์˜ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์—ฌ์ง„๋‹ค.

merge ํ•  ์ง€ ํŒ๋‹จํ•˜๊ธฐํšŒ์‚ฌ๋งˆ๋‹ค ๊ฐ€์ด๋“œ๋ผ์ธ์ด ์žˆ์–ด์„œ ๊ณ ๋ฏผํ• ํ•„์š” ์—†๋‹ค ๊ทธ๋Ÿฐ๊ฑฐ ์—†์œผ๋ฉด ํ‡ด์‚ฌ

 

ํŒŒ์ผ๋‹จ์œ„ ์ œ์–ด

  • git restore <file name>
    -ํŠน์ • ํŒŒ์ผ์„ Head Commit์œผ๋กœ ๋ณต๊ตฌ
  • git restore --source ์ปค๋ฐ‹์•„์ด๋”” ํŒŒ์ผ๋ช…  <file name>
    -ํŒŒ์ผ์ด ํŠน์ • ์ปค๋ฐ‹์•„์ด๋”” ์‹œ์ ์œผ๋กœ ๋ณต๊ตฌ
  • git restore
    -ํŠน์ • ํŒŒ์ผ์„ staging ์ทจ์†Œํ• ์ˆ˜ ์žˆ๋‹ค

 

commit ์ œ์–ด

revert
-ํ˜„์žฌ์— ์žˆ์œผ๋ฉด์„œ ๊ณผ๊ฑฐ์˜ ํŠน์ • ์‚ฌ๊ฑด(commit)๋“ค๋งŒ ์—†๋˜ ์ผ๋กœ ๋งŒ๋“ ๋‹ค.

reset
-์‹œ๊ฐ„์„ ์•„์˜ˆ ๊ณผ๊ฑฐ ํŠน์ • ์‚ฌ๊ฑด(commit)์œผ๋กœ ๋˜๋Œ๋ฆฐ๋‹ค

-ํ˜‘์—…์‹œ์—” ์‚ฌ์šฉ๊ธˆ์ง€

  • -git revert <commit ID>
    -๋Œ์•„๊ฐ€๊ณ ์ž ํ•˜๋Š” commit ID๋ฅผ ์ ์–ด์ค€๋‹ค,์—ฌ๋Ÿฌ๊ฐœ ์ž…๋ ฅ๊ฐ€๋Šฅ
  • git reset --soft <commit ID>
    - commit๋œ ํŒŒ์ผ๋“ค์„ staging area๋กœ ๋Œ๋ ค๋†“์Œ. =>commit ํ•˜๊ธฐ ์ „ ์ƒํƒœ๋กœ
  • git reset --mixed [commit ID]
    -commit๋œ ํŒŒ์ผ๋“ค์„ working directory๋กœ ๋Œ๋ ค๋†“์Œ. =>add ํ•˜๊ธฐ ์ „ ์ƒํƒœ๋กœ
  • git reset --hard [commit ID]
    -commit๋œ ํŒŒ์ผ๋“ค ์ค‘ tracked ํŒŒ์ผ๋“ค์„ working directory์—์„œ ์‚ญ์ œํ•œ๋‹ค. =>Untracked ํŒŒ์ผ์€ ์—ฌ์ „ํžˆ Untracked๋กœ ๋‚จ๋Š”๋‹ค.
  • git reset HEAD~10 
    -ํ˜„์žฌ๋กœ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๋งŒํผ์˜ ์ปค๋ฐ‹์ด ์ทจ์†Œ๋œ๋‹ค.
  • git reset HEAD^
    -๊ฐ€์žฅ ์ตœ๊ทผ์˜ ์ปค๋ฐ‹์ด ์ทจ์†Œ๋œ๋‹ค. (๊ธฐ๋ณธ์˜ต์…˜mixed)

git push

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

  • git push <remote> <branch>
  • git push -u origin my-feature
    -์ตœ์ดˆ์— ํ•œ ๋ฒˆ๋งŒ ์ €์žฅ์†Œ๋ช…๊ณผ ๋ธŒ๋žœ์น˜๋ช…์„ ์ž…๋ ฅํ•˜๊ณ  ๊ทธ ์ดํ›„์—๋Š” ๋ชจ๋“  ์ธ์ž๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค
    =>์ธ์ž์—†์ด git push ๋ช…๋ น์–ด๋งŒ ๋‚ ๋ฆฌ๋ฉด ๋œ๋‹ค
  • git push -f origin my-feature
    -์›๊ฒฉ ์ €์žฅ์†Œ ๋‚ด์˜ ํ•ด๋‹น ๋ธŒ๋žœ์น˜์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์ด๋ ฅ์œผ๋กœ ๋ฎ์–ด์”Œ์–ด ์ค€๋‹ค

 

git clone

-์„œ๋ฒ„ ์ €์žฅ์†Œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ์ปฌ ์ปดํ“จํ„ฐ๋กœ ๋ณต์‚ฌ

 

 

git pull(git fetch + git merge ์ถ•์•ฝ์–ด)

- ์›๊ฒฉ์ €์žฅ์†Œ์— ์žˆ๋˜ ๋ชจ๋“  ๋ธŒ๋žœ์น˜ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์™€์„œ ๋กœ์ปฌ์ €์žฅ์†Œ์— ํ•ฉ์น˜๋ผ๋Š” ๋œป

 

 

git  status

-์ €์žฅ์†Œ ์ƒํƒœ ์ฒดํฌ,์–ด๋–ฐํŒŒ์ผ์ด ์ €์žฅ์†Œ ์•ˆ์— ์žˆ๋Š”์ง€, ์ปค๋ฐ‹์ด ํ•„์š”ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š”์ง€,ํ˜„์žฌ ์ €์žฅ์†Œ์˜ ์–ด๋–ค ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š”์ง€

 

 

git stash

-์•„์ง ๋งˆ๋ฌด๋ฆฌํ•˜์ง€ ์•Š์€ ์ž‘์—…์„ ์Šคํƒ์— ์ž ์‹œ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ช…๋ น์–ด

  • git stash apply&gpop
    -๊ฐ€์žฅ ์ตœ๊ทผ์˜ stash๋ฅผ ๊ฐ€์ ธ์™€ ์ ์šฉํ•œ๋‹ค
  • git stash list
    -stash ๋ชฉ๋ก ํ™•์ธ
  • git stash apply [stash ์ด๋ฆ„]
    -์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” stash ์ ์šฉ
  • git stash drop
    -๊ฐ€์žฅ ์ตœ๊ทผ์˜ stash ์ œ๊ฑฐ
728x90
๋ฐ˜์‘ํ˜•

'Git' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

git cherry-pick (๋ถ€๋ถ„๋ณ‘ํ•ฉ)  (6) 2023.03.21
git pull Already up to date  (6) 2023.03.16
profile

Kimsoraโœจ

@sorarar

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!

๊ฒ€์ƒ‰ ํƒœ๊ทธ

WH