Git and Github

git config

  • git config --global "user.name"

  • git config --global "user.email"

  • git config --list

cmd

  • cd : change directory

  • dir Windows / ls Mac

  • q : exit git log

git

  • git init : .git ํด๋” ์ƒ์„ฑ, ํ•ด๋‹น ํด๋” ๋‚ด๋ถ€์˜ ํด๋”์™€ ํŒŒ์ผ๋“ค์„ ํ˜•์ƒ๊ด€๋ฆฌ ํ•˜๊ฒ ๋‹ค๋Š” ์„ ์–ธ

  • git status : ํ•ด๋‹น ํด๋” ๋‚ด์˜ ํ˜•์ƒ๊ด€๋ฆฌ ์ƒํƒœ ์ •๋ณด

  • git add [.] : staging, ์ผ๋ถ€ ํŒŒ์ผ๋งŒ ์Šคํ…Œ์ด์ง• ํ•  ๋•Œ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋œ ํŒŒ์ผ์€ ๋ˆ„๋ฝ๋จ

  • git add [-u] : ์ˆ˜์ •๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋œ ํŒŒ์ผ ๋ฐ˜์˜

  • git mv (oldname) (newname) : ๋กœ์ปฌ๊ณผ ์ €์žฅ์†Œ์—์„œ ํŒŒ์ผ๋ช… ๋ณ€๊ฒฝ, ๋ณ€๊ฒฝ์‹œ์ ์—์„œ ์ปค๋ฐ‹ํ•˜๊ธฐ


  • git commit [-m "commit message"]

  • git commit [-a] ์ˆ˜์ •๋˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•œ ํŒŒ์ผ๋งŒ commit

  • git reset [--hard, --soft, --mixed 'commit hash code'] : ํ•ด๋‹น ์ปค๋ฐ‹์œผ๋กœ ๋กค๋ฐฑ

  • git reset [--hard] : ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์œผ๋กœ ๋กค๋ฐฑ


  • git remote add origin 'repository url' : ๊นƒํ—ˆ๋ธŒ์™€ ์—ฐ๋™

  • git remote remove : ์—ฐ๋™ ๋Š๊ธฐ

  • git remote [-v] : ์—ฐ๋™ ํ™•์ธ


  • git push origin main : ๊นƒํ—ˆ๋ธŒ repo ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ํ˜„์žฌ ์ปค๋ฐ‹์„ ๋„ฃ์Œ

  • git clone 'repository url' : ๊นƒํ—ˆ๋ธŒ repo์—์„œ ๋ชจ๋“  ์ปค๋ฐ‹์„ ๋กœ์ปฌ๋กœ ๊ฐ€์ ธ์˜ด

  • git pull origin main : ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ผ์–ด๋‚œ ๊ฒƒ์„ ๋กœ์ปฌ๋กœ ๋™๊ธฐํ™”, ๋กœ์ปฌ๊ณผ ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ๋งž์ถฐ์ฃผ๊ธฐ ์œ„ํ•ด


  • git branch : ํ˜„์žฌ ๋ธŒ๋žœ์น˜ ํ™•์ธ

  • git branch 'branch name' : ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ

  • git checkout 'branch name' : ๋ธŒ๋žœ์น˜ ์ด๋™

  • git merge 'baranch name' : ํ˜„์žฌ ๋ธŒ๋žœ์น˜์— ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋ฅผ ํ•ฉ์นจ


  • .gitignore : ์ปค๋ฐ‹ ์˜ˆ์™ธ์‚ฌํ•ญ ์„ค์ • ํŒŒ์ผ


  • git stash [save "message"] : ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž„์‹œ์ €์žฅ(WIP)ํ•˜๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ์‚ฌ๋ผ์ง(์ถ”๊ฐ€๋œ ํŒŒ์ผ์€ ์ €์žฅ๋ถˆ๊ฐ€)

  • git stash list : ์ €์žฅ๋œ ๋ชฉ๋ก ์กฐํšŒ

  • git stash show [-p] : ์ €์žฅ๋œ ๋‚ด์šฉ ์กฐํšŒ

  • git stash pop [stash@{index}] : ์ €์žฅ๋œ stash๋ฅผ ๋ชฉ๋ก์—์„œ ์ถ”์ถœ(์ถ”์ถœ ํ›„ ์‚ฌ๋ผ์ง)

  • git stash apply [stash@{index}] : ์ €์žฅ๋œ stash๋ฅผ ๋ชฉ๋ก์—์„œ ๋ถˆ๋Ÿฌ์˜ด(์‚ฌ๋ผ์ง€์ง€์•Š์Œ)

  • git stash drop [stash@{index}] : ์ €์žฅ๋œ stash๋ฅผ ๋ชฉ๋ก์—์„œ ์‚ญ์ œ

  • git stash clear : ์ €์žฅ๋œ stash ๋ชฉ๋ก์„ ์‚ญ์ œ

cherryPick

  • ๋งํ•ด์„œ ๋Œ์•„๊ฐ€์•ผ ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ฒƒ๋“ค์€ ์‚ด๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ

  • git cherry-pick 'commit hash code'[..'commit hash code'] : ํ•ด๋‹น ์ปค๋ฐ‹์„ ๊ฐ€์ ธ์™€์„œ ์ง€๊ธˆ ๋‚ด ๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹

conflict

  • mergeํ•  ๋•Œ ์ถฉ๋Œ์ด ๋‚˜๋Š” ๊ฒฝ์šฐ

  • git์€ 3 way merge๋ฅผ ์ˆ˜ํ–‰ํ•จ

rebase

  • merge์™€์˜ ์ฐจ์ด : ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๋‹ค๋ฆ„

  • ๊ณตํ†ต์˜ base๋ฅผ ๊ฐ€์ง„ ๋‘ ๊ฐœ์˜ branch์—์„œ ํ•˜๋‚˜์˜ branch์˜ base๋ฅผ ๋‹ค๋ฅธ branch์˜ ์ตœ์‹  ์ปค๋ฐ‹์œผ๋กœ branch์˜ base๋ฅผ ์˜ฎ๊ธฐ๋Š” ์ž‘์—… ์•„์ง์€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค

๋ธŒ๋žœ์น˜ ์ „๋žต git-flow

  • ํฌ๊ฒŒ ๋‹ค์„ฏ๊ฐ€์ง€์˜ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ฐœ๋ฐœ์„ ์šด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

  • Main(Master) : ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘ํ•˜๋Š” ๋ฒ„์ „(๋ฌด์กฐ๊ฑด ์•ˆ์ •์ )

  • Develop : ๊ฐœ๋ฐœ์šฉ ๋ธŒ๋žœ์น˜(๊ฐœ๋ฐœํ•  ๋•Œ pull ๋ฐ›์•„์˜ค๋Š” ๊ณณ์ด์ž feature ๋ธŒ๋žœ์น˜๋ฅผ ๋”ฐ์˜ค๋Š” ๊ณณ)

  • Release : ๋ฐฐํฌ์šฉ ๋ธŒ๋žœ์น˜(๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜์—์„œ ๋”ฐ์™€์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  ๋ฒ„๊ทธ ์ˆ˜์ •๋งŒ ํ•จ) ๊ผญ Develop๊ณผ Main์— merge ํ•ด์ค˜์•ผํ•จ

  • Feature : ๊ธฐ๋Šฅ๊ฐœ๋ฐœ์šฉ ๋ธŒ๋žœ์น˜(ํ•˜๋‹ค ๋งํ•˜๋ฉด ๋ฒ„๋ ค๋„ ๋˜๋Š” ๊ณณ, ๋…๋ฆฝ๊ณต๊ฐ„)

  • Hotfix : ๊ธ‰ํ•˜๊ฒŒ ์ˆ˜์ •๋˜์–ด์•ผ ํ•˜๋Š” ์ด์Šˆ(๋ฒ„๊ทธ/๊ธฐ๋Šฅ) ๊ผญ Develop๊ณผ Main์— merge ํ•ด์ค˜์•ผํ•จ

warnning ํ•ด๊ฒฐ

warning: LF will be replaced by CRLF in README.md. ์šด์˜์ฒด์ œ์— ๋”ฐ๋ผ ๊ฐœํ–‰๋ฌธ์ž๊ฐ€ ๋‹ฌ๋ผ ๊ฒฝ๊ณ ํ•ด์ฃผ๋Š” ๊ฒƒ -> git config core.autocrlf true

๋งจ๋‚  ๊นŒ๋จน๋Š” git...

Last updated