Codong's Development Diary RSS ํƒœ๊ทธ ๊ด€๋ฆฌ ๊ธ€์“ฐ๊ธฐ ๋ฐฉ๋ช…๋ก
2021-02-14 15:58:09

๐Ÿค”git ์ด๋ž€?

ํ˜•์ƒ ๊ด€๋ฆฌ ๋„๊ตฌ(Configuration Management Tool) ์ค‘ ํ•˜๋‚˜. ๊ทธ ์ค‘ ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค. ์ค‘์•™ ์ง‘์ค‘ ๋ฐฉ์‹์ธ SVN(SubVersion)๊ณผ ์ฐจ์ด๋Š” SVN์€ ์ค‘์•™ ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ชจ๋“  ์ž‘์—…์ด ์ค‘๋‹จ๋œ๋‹ค. ๊ฐœ๋ฐœ PC์™€ ์ €์žฅ์†Œ์— ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅ๋˜์–ด ์žˆ๊ธฐ์— ์ค‘์•™ ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ์žˆ์–ด๋„ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์ปค๋ฐ‹์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ›„์— ์ •์ƒํ™” ๋˜์—ˆ์„ ๋•Œ ๋‹ค์‹œ ์—…๋กœ๋“œ๋ฅผ ํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์ค‘์•™ ์ €์žฅ์†Œ์˜ ๋ณต์›์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿงฉgit ๊ตฌ์กฐ

  1. working directory : untracked / tracked ํŒŒ์ผ, unmodified / modified ํŒŒ์ผ๋กœ ๋‚˜๋‰จ. modified ํŒŒ์ผ๋งŒ staging area๋กœ ์˜ฎ๊ฒจ๊ฐˆ ์ˆ˜ ์žˆ์Œ. git add๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์„ tracked ํŒŒ์ผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ex) ํ•ด๋‹น ํด๋”์˜ .txt ํŒŒ์ผ๋งŒ ์ถ”๊ฐ€ git add *.txt
  • addํ•˜์—ฌ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ
  1. staging area : ์ด๊ณณ์— ์˜ฌ๋ผ์˜จ ํŒŒ์ผ์ด๋ผ๋„ ์ˆ˜์ •๋œ๋‹ค๋ฉด modified ๋ผ๊ณ  ๋‚˜์˜จ๋‹ค. ์ด ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ๋˜ ์˜ฌ๋ฆด๋ผ๋ฉด git add (ํŒŒ์ผ๋ช…). staging area์—์„œ ๋‚ด๋ฆด๊บผ๋ฉด git rm --cached (ํŒŒ์ผ๋ช…)
  • commitํ•˜์—ฌ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ.
  1. local .git directory (history) --push--> <--pull-- remote .git directory (์„œ๋ฒ„ ์ €์žฅ์†Œ์— ์ €์žฅ)
  • commit์‹œ staging area์— ์žˆ๋˜ ํŒŒ์ผ๋“ค์ด local .git directory์— ์˜ฌ๋ผ๊ฐ„๋‹ค. ๊ทธ๊ฒƒ์„ ์›๊ฒฉ git directory์— ์˜ฎ๊ฒจ ์ €์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด push๋ฅผ ์ด์šฉํ•ด ์ €์žฅํ•˜๋ฉด ๋˜๊ณ , ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์ €์žฅ๋œ ๋‚ด ์ž‘์—…ํŒŒ์ผ์„ ๋‚ด๋ ค๋ฐ›๊ณ  ์‹ถ์œผ๋ฉด pull ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

commit ๊ทœ๋ชจ๋Š” ๊ธฐ๋Šฅ๋ณ„๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ํ˜„์žฌํ˜• ๋™์‚ฌ๋กœ, ๊ผญ ๋ฉ”์‹œ์ง€์— ์ ํžŒ ๊ฒƒ๋งŒ ์ž‘์—…ํ•ด์„œ commit ํ•˜๊ธฐ!

๐ŸŽฎ๋ช…๋ น์–ด

๊ธฐ๋ณธ์ ์œผ๋กœ git + ๋ช…๋ น์–ด + -์˜ต์…˜ ํ˜•์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง ex) git config --global
๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ๊ณต์‹ ๋ฌธ์„œ ใ„ฑใ„ฑ! ๐Ÿ˜‹ Git ๊ณต์‹๋ฌธ์„œ

  • git --list : ๊นƒ ์„ค์ • ํ™•์ธ๊ฐ€๋Šฅ
  • git --global -e : ํ„ฐ๋ฏธ๋„์—์„œ ์„ค์ • ํ™•์ธ
  • git config --global core.editor "code" : vscode์—์„œ ํ™•์ธ
  • git init : ํด๋”์•ˆ์— ๊นƒ ์ดˆ๊ธฐํ™”
  • git rm -rf .git : ๊นƒ ์ œ๊ฑฐ
  • git status : ์ƒํƒœํ™•์ธ
  • git log : ๋กœ๊ทธ ํ™•์ธ
  • git diff : working directory์˜ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉํ™•์ธ ๊ฐ€๋Šฅ. staging area๊นŒ์ง€ ํ™•์ธ์‹œ git diff -staged or cached
  • ๋ช…๋ น์–ด ์ค„์ด๊ธฐ ex) status๋ฅผ st๋กœ ์ค„์ด๊ธฐ git config --global alias.st status
  • ๋ช…๋ น์–ด ํ™•์ธํ•ด๋ณด๊ธฐ ex) git config --h

๐Ÿ”œ์ดˆ๊ธฐ ์„ค์ •

--global์„ ์‚ฌ์šฉํ•˜๋ฉด ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ํ•˜๋ฉด ๋˜๊ณ , ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋‹ค๋ฅธ ์ด๋ฆ„๊ณผ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด --global์„ ๋นผ๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

  • git config --global user.name "์ด๋ฆ„" : ์ด๋ฆ„ ์„ค์ • (๊นƒํ—™์•„์ด๋””)
  • git config --global user.email "์ด๋ฉ”์ผ" : ์ด๋ฉ”์ผ ์„ค์ • (๊นƒํ—™์ด๋ฉ”์ผ)
  • git remote add origin (๊นƒํ—™์ฃผ์†Œ) : git init ํ›„ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์—ฐ๊ฒฐ ex) https://github.com/Park-DongHo/WebPractice.git
  • git config --global core.autocrlf true (window or mac input) : git ์ €์žฅ์†Œ ์ €์žฅ์‹œ ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ œ ํ•ด๊ฒฐ

reference