๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

github

3-1. ๊ธฐ๋ณธ ๋ช…๋ น์–ด

* Git์˜ Workflow

  • working directory : ํ”„๋กœ์ ํŠธ์˜ ํŒŒ์ผ์„ ์ˆ˜์ •, ์ž‘์—…ํ•˜๋Š” ๊ณณ (tracked/untracked)
    • Git์ด ํŠธ๋ž˜ํ‚นํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ(์ด๋ฏธ ์•Œ๋˜ ํŒŒ์ผ)์ด๋ฉด tracked
      • ์ง€๊ธˆ ์‹œ์ ์—์„œ ์ˆ˜์ •ํ•จ : modified
      • => modified๋งŒ staging area๋กœ ์ด๋™
      • ์ด์ „ ๋ฒ„์ „๊ณผ ๋น„๊ตํ•ด์„œ ์ˆ˜์ •์ด ๋˜์ง€ ์•Š์•˜์Œ : unmodified
    • ์ƒˆ ํŒŒ์ผ์ด๊ฑฐ๋‚˜ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์—์„œ Git์„ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด GIt์ด ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์•„์˜ˆ ์—†์Œ -> ํŠธ๋ž˜ํ‚น๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ untracked
  • staging area : ์–ด๋А ์ •๋„ ์ž‘์—…ํ•˜๋ฉด ๋ฒ„์ „ ํžˆ์Šคํ† ๋ฆฌ์— ์ €์žฅํ•  ์ค€๋น„๊ฐ€ ๋œ ํŒŒ์ผ์„ ์˜ฎ๊ฒจ๋†“๋Š” ๊ณณ
  • .git directory : staging area์—์„œ commit์„ ํ•˜๋ฉด Git ๋ฒ„์ „์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ณณ (=git repository)

- .git directory์—์„œ ์ €์žฅ๋œ ๋ฒ„์ „๋“ค์€ checkout์ด๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด working directory๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Œ

- ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ์ƒํ™ฉ์œผ๋กœ ์ธํ•œ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๋Œ€๋น„ํ•˜์—ฌ local ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ Github์™€ ๊ฐ™์€ ์„œ๋ฒ„์— push๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋‚˜์˜ git directory๋ฅผ ์„œ๋ฒ„์— ์—…๋กœ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฐ˜๋Œ€๋กœ ์„œ๋ฒ„์—์„œ local๋กœ ๋‹ค์šด๋ฐ›์„ ๋•Œ๋Š” pull ๋ช…๋ น์„ ์ด์šฉํ•œ๋‹ค.

(๋กœ์ปฌ -> ์„œ๋ฒ„ : push / ์„œ๋ฒ„ -> ๋กœ์ปฌ : pull)

- ๊ฐ๊ฐ์˜ commit์—๋Š” ์Šค๋ƒ…์ƒท ๋œ ์ •๋ณด๋“ค์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ ์œ ํ•œ ํ•ด์‰ฌ์ฝ”๋“œ๊ฐ€ ๋ถ€๊ณผ๋จ 

 

 

 

* add : ๋กœ์ปฌ ํŒŒ์ผ๋“ค์„ ์ถ”๊ฐ€ (tracking ํ•˜์—ฌ staging area๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ)

<tip> ํ„ฐ๋ฏธ๋„์—์„œ๋Š” ↑๋ฐฉํ–ฅํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‚ฌ์šฉํ•œ ๋ช…๋ น๋ฌธ์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์˜ค๋ฅธ์ชฝ ์‚ฌ์ง„์€ ๊ทธ ์ƒํ™ฉ

 

- git status : ํ˜„์žฌ ํŒŒ์ผ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•จ.

์˜ค๋ฅธ์ชฝ ์‚ฌ์ง„์˜ ์ƒํƒœ๋Š” ์ด๋ ‡๋‹ค↓

์ง€๊ธˆ master branch์—์„œ ์ž‘์—… ์ค‘์ด๋ฉฐ, ์•„์ง commit๋œ ๊ฒƒ์ด ์—†๊ณ , untracked์ธ ํŒŒ์ผ์ด ์„ธ ๊ฐœ ์žˆ๋‹ค.
์•„์ง commitํ•˜๋ ค๊ณ  ์ถ”๊ฐ€๋œ ๊ฑด ์—†์œผ๋‚˜ untracked์ธ ํŒŒ์ผ์ด ์กด์žฌํ•œ๋‹ค.
git add๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด tracking ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

git add a.txt

์ง€๊ธˆ commit๋œ๊ฑด ์—†์ง€๋งŒ,
commitํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ํŒŒ์ผ a.txt๊ฐ€ ์žˆ๋‹ค. 
git add b.txt c.txt

 

์œ„์™€ ๊ฐ™์ด ์“ฐ๋ฉด b.txt์™€ c.txt๋ฅผ trackingํ•  ์ˆ˜ ์žˆ๊ณ ,

git add *.txt ๋กœ ์ž‘์„ฑํ•˜๋ฉด txt ํŒŒ์ผ์„ ๋ชจ๋‘ trackingํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ aํŒŒ์ผ์— ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด aํŒŒ์ผ์˜ ์ƒํƒœ๋Š” modified๋กœ ๋˜์–ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ฆ‰ tracking์€ ๋˜์–ด ์žˆ์ง€๋งŒ ์ˆ˜์ • ์ „์˜ a.txt๊ฐ€ staging area์— ์žˆ๋Š” ๊ฒƒ์ด๋ฉฐ ์ˆ˜์ • ํ›„์˜ a.txt๋Š” working directory์— tracked์ธ ์ฑ„๋กœ ๋‚จ์•„ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ์ˆ˜์ •๋œ a.txt๋ฅผ ๋‹ค์‹œ trackingํ•˜์—ฌ staging area์— ์˜ฎ๊ธฐ๋ฉด ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์™ผ์ชฝ ์บก์ณ์—์„œ git rm --cached <file> ...์„ ์ด์šฉํ•˜์—ฌstaging area -> working directory๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

git rm --cached *๋ฅผ ์ž…๋ ฅํ•˜๋ฉด staging area์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ๋“ค์„ ํ•œ๋ฒˆ์— working directory๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

 

 

์œ„์—์„œ ๋‹ค์‹œ staging area => working directory๋กœ ๋Œ๋ ค ๋ณด๋ƒˆ์œผ๋ฏ€๋กœ ๋‹ค์‹œ tracking์„ ํ•œ๋‹ค.

 

์ง€๊ธˆ์€ a.txt, b.txt, c.txt๊ฐ€ ๋ชจ๋‘ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ ,

git status์—๋„ ๋ชจ๋‘ staging area์— ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด ๋•Œ a.txt๋ฅผ ์‚ญ์ œํ•˜๋ฉด tracking๋œ ํŒŒ์ผ์€ ์–ด๋–ป๊ฒŒ ๋˜๋Š” ๊ฑธ๊นŒ?

 

a.txt๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋‹น์—ฐํžˆ ๋กœ์ปฌ์—๋Š” b.txt์™€ c.txt๋งŒ ์กด์žฌํ•œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  git์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด,

 

์‚ญ์ œ๋œ a.txt๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—

staging area์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์•˜๋‹ค. 

 

git add . ๋ฅผ ์ž…๋ ฅํ•˜๊ณ , git์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ฉด

 

๋ชจ๋“  ํŒŒ์ผ์„ ํฌํ•จํ•ด git staging area์— ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. *๊ณผ .์˜ ์ฐจ์ด๊ฐ€ ๋ญ”์ง€ ์‚ฌ์‹ค ๊ฐ์ด ์ž˜ ์•ˆ์˜ค์ง€๋งŒ... ์•„๋ฌดํŠผ ๊ทธ๋ ‡๊ตฌ๋‚˜ ํ•˜๋ฉด ๋  ๊ฒƒ๊ฐ™๋‹ค... 

 

 

 

 

 

* ignore : ignore ๋’ค์— ์žˆ๋Š” ํŒŒ์ผ ๋นผ๊ณ  trackingํ•˜๊ธฐ

- style.css์™€ log.log ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ , git์˜ ์ƒํƒœ๋ฅผ ํ™•์ธ

 

- ์œ„์—์„œ ์ด๋ฏธ ํŠธ๋ž˜ํ‚นํ•œ b.txt์™€ c.txt๋Š” commit๋  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์Œ

 

- ๋ฐฉ๊ธˆ ์ƒ์„ฑํ•œ log.log์™€ style.css๋Š” ์•„์ง untracked ์ƒํƒœ

 

- ์ผ๋‹จ ๋ชจ๋“  cssํŒŒ์ผ์„ tracking

 

- ์ดํ›„ git์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ฉด log.log ํŒŒ์ผ๋งŒ ์•„์ง ํŠธ๋ž˜ํ‚น ๋˜์ง€ ์•Š์€ ์ƒํƒœ

 

๊ตณ์ด ์ด๋ ‡๊ฒŒ ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ํŒŒ์ผ ํ˜•์‹๋งˆ๋‹ค ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ํŠธ๋ž˜ํ‚นํ•˜๊ธฐ ์‹ซ๊ณ , log ํŒŒ์ผ ๋นผ๊ณ  ๋‚˜๋จธ์ง€ ํŒŒ์ผ๋“ค์„ ๋ชจ๋‘ tracking ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ignore์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ignore์€ add ์ฒ˜๋Ÿผ git add ํŒŒ์ผ ์ด๋Ÿฐ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

echo๋กœ ignore ํ•˜๊ณ  ์‹ถ์€ ํŒŒ์ผ์„ ๋„ฃ์–ด๋†“์œผ๋ฉด, ์‹ค์ œ .gitignore ํŒŒ์ผ์— ํ•ด๋‹น ํŒŒ์ผ(์—ฌ๊ธฐ์„  log ํŒŒ์ผ ํ˜•์‹์„ ..)์ด ๋“ค์–ด๊ฐ€์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  git์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด .gitignore ํŒŒ์ผ์€ ํŠธ๋ž˜ํ‚น๋˜์ง€ ์•Š์•˜์ง€๋งŒ .log ํŒŒ์ผ์ด ์•„์˜ˆ ์‚ฌ๋ผ์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค! (์‚ญ์ œ๋œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋ฌด์‹œ๋‹นํ–ˆ์„ ๋ฟ)

 

์œ„์˜ ์˜ˆ์‹œ๋กœ๋Š” *.log์„ ์จ์„œ log ํŒŒ์ผ ํ˜•์‹๋งŒ ๋„ฃ์—ˆ์ง€๋งŒ,

# ํŠน์ • ํŒŒ์ผ
log.log
# ํŠน์ • ํŒŒ์ผ ํ˜•์‹
*.log
# ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ๋“ค
build/
# ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŠน์ • ํŒŒ์ผ ํ˜•์‹๋“ค
build/.log

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ํ˜•์‹์œผ๋กœ ํŒŒ์ผ๋“ค์„ ๋ฌด์‹œํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค... )

create-react-app ํˆด์„ ์ด์šฉํ•˜๋ฉด git ignore ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๊ธฐ๋„ ํ•œ๋‹ค.

 

 

 

* status : ํ˜„์žฌ ์ƒํƒœ ํ™•์ธ

์œ„์—์„œ๋„ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ๋˜ git status.

์ด ๋•Œ -h๋Š” help๋ผ๋Š” ๋œป์œผ๋กœ, ๋„์›€๋ง๊ฐ™์€ ๊ฐœ๋…์œผ๋กœ ์•Œ๋ฉด ๋œ๋‹ค.

 

์—ฌ๊ธฐ์„œ --long์€ (default)๊ฐ€ ํ‘œ์‹œ๋˜์–ด์žˆ๋Š”๋ฐ, ๊ทธ๋ƒฅ git status๋ผ๊ณ  ์ž…๋ ฅํ•˜๋ฉด ๋””ํดํŠธ, ์ฆ‰ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ์šฉ์ด ๋œ๋‹ค๋Š” ๋œป์ด๋‹ค.

-s๋Š” ์ด๋ฅผ ๊ฐ„๋‹จํžˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , -b๋Š” branch์˜ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

์ƒ์„ธํ•œ ์„ค๋ช…์€ ๊ทธ๋ƒฅ git status / ์งง์€ ํ‘œ์‹œ๋Š” git status -s๋ฅผ ๋ถ™์—ฌ์ฃผ์ž.

์ฒซ๋ฒˆ์งธ ์‚ฌ์ง„์€ ๋””ํดํŠธ๊ฐ’์ธ --long์ด ์ ์šฉ๋œ ๋ชจ์Šต, ๋‘๋ฒˆ์งธ ์‚ฌ์ง„์€ -s (short)๋ฅผ ๋ถ™์˜€์„ ๋•Œ ์ ์šฉ๋œ ๋ชจ์Šต.

์„ธ๋ฒˆ์งธ ์‚ฌ์ง„์€ c.txt์— ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด ๋น„๊ตํ•œ ๋ชจ์Šต์ด๋‹ค. ๋‘๋ฒˆ์งธ ์‚ฌ์ง„๊ณผ ๋‹ฌ๋ฆฌ c.txt์— M๋„ ๋ถ™์—ˆ๋‹ค.

  • A : ํŒŒ์ผ์ด staging area์— ์ถ”๊ฐ€๋œ ์ •๋ณด
  • M : working directory์—์„œ ํŒŒ์ผ์ด ์ˆ˜์ •๋œ(Modified) ์ƒํƒœ
  • ?? : ์•„์ง tracking๋˜์ง€ ์•Š์•˜๊ณ , working directory์— ์žˆ์Œ

 

 

* diff : ์ •ํ™•ํ•˜๊ฒŒ ์–ด๋–ค ํŒŒ์ผ์˜ ๋‚ด์šฉ์ด ์ˆ˜์ •๋๋Š”์ง€ ๋น„๊ต

git diff

  git diff ๋’ค์— ์•„๋ฌด ์˜ต์…˜๋„ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค๋ฉด working directory์— ์žˆ๋Š” ๊ฒƒ๋งŒ ๋น„๊ตํ•ด์„œ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

  ์บก์ณ์˜ ์ฒซ์ค„์„ ๋ณด๋ฉด, diff --git ์ปค๋งจ๋“œ๋ฅผ ์ด์šฉํ–ˆ๊ณ , ์—ฌ๊ธฐ์„œ a๋Š” a.txt๊ฐ€ ์•„๋‹Œ ์ด์ „ ๋ฒ„์ „, b๋Š” ๋ฐ”๋€ ๋ฒ„์ „์„ ๋งํ•œ๋‹ค. ์ด ๋•Œ ์ด์ „ ๋ฒ„์ „์€ ์ด์ „์˜ commit๋œ ๋ฒ„์ „์ด๋‚˜ staging area์— ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๊ทธ ์ด์ „ ๋ฒ„์ „์„ ๋งํ•˜๋Š”๋ฐ, ์ง€๊ธˆ๊นŒ์ง€ commit์„ ์•„์˜ˆ ์•ˆํ–ˆ์œผ๋ฏ€๋กœ ํ›„์ž์˜ ๊ฒฝ์šฐ์ด๋‹ค.

index๋Š” git ๋‚ด๋ถ€์ ์œผ๋กœ ํŒŒ์ผ๋“ค์„ ์ฐธ๊ณ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

# ์ด์ „ ๋ฒ„์ „ a/c์™€ ์ตœ์‹  ๋ฒ„์ „(?) b/c๋ฅผ ๋น„๊ตํ•˜๊ฒ ๋‹ค
--- a/c.txt
+++ b/c.txt
# -1 : ์ด์ „ ํŒŒ์ผ(-)์˜ ์ฒซ๋ฒˆ์งธ(1) ์ค„, + : ํ˜„์žฌ ํŒŒ์ผ / +1, 2 : ํ˜„์žฌ ํŒŒ์ผ์˜ 1, 2์ค„์„ ํ™•์ธํ•ด๋ด๋ผ
@@ -1 +1,2 @@ 
 hello world! # ์ฒซ๋ฒˆ์งธ ์ค„
+add # + add๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค
# ๋งŒ์•ฝ add๊ฐ€ ์‚ญ์ œ๋˜์—ˆ์œผ๋ฉด -add๊ฐ€ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค.

 

- git diff --staged : staging area์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ๋น„๊ตํ•ด๋ณด๊ณ  ์‹ถ์„ ๋•Œ (staged๋Š” cached์™€ ๋™์˜์–ด๋กœ ์“ฐ์ด๋ฉฐ, git diff --cached ๋ผ๊ณ  ์‚ฌ์šฉํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.)

a/b.txt(์ด์ „ ๋ฒ„์ „)๊ณผ b/b.txt(์ตœ์‹  ๋ฒ„์ „)์„ ๋น„๊ตํ–ˆ์„ ๋•Œ

 

์ด์ „์—๋Š” null ์ด์—ˆ์ง€๋งŒ ์ตœ์‹  ๋ฒ„์ „์€ b/b.txt์ด๋‹ค.

 

-0, 0 +1 : ์ด์ „ ํŒŒ์ผ์€ ์—†์—ˆ๊ธฐ์— 0, ์–ด๋– ํ•œ ์ค„๋„ ์—†๊ธฐ์— 0 ์ด์ง€๋งŒ ์ƒˆ ํŒŒ์ผ์—๋Š” ์ฒซ ๋ฒˆ์งธ ์ค„์— hello world!๊ฐ€ ์ถ”๊ฐ€ ๋˜์—ˆ๋‹ค.

 

c.txt๋„ ๋งˆ์ฐฌ๊ฐ€์ง€.

 

style.css ํŒŒ์ผ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๊ณ 

์ฒซ ๋ฒˆ์งธ ์ค„์— styling์ด ์ถ”๊ฐ€ ๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

ํ„ฐ๋ฏธ๋„๋กœ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ํž˜๋“ค ๋•Œ ์ด๋ฅผ ํ…์ŠคํŠธ ์—๋””ํ„ฐ๋กœ ์—ด์–ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด git config --global -e (git config์— global๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒƒ๋“ค์„ edit ๋ชจ๋“œ๋กœ ์—ด๊ธฐ) ๋ฅผ ์‹คํ–‰ํ•ด

 

[diff]
	tool = vscode
	# diff tool์€ vscode๋ฅผ ์ด์šฉํ•œ๋‹ค.
[difftool "vscode"]
	cmd = code --wait --diff $LOCAL $REMOTE
	# vscode์˜ ๋ช…๋ น์–ด๋Š” code ๋‹ค์Œ์— ํ„ฐ๋ฏธ๋„์—์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ , diff๋ฅผ ์ด์šฉํ•˜๊ณ  LOCAL๊ณผ REMOTE๋ฅผ ๋น„๊ตํ•œ๋‹ค.

 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋“ค์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  git difftool์„ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด, vscode๋กœ launch ํ• ๊ฑฐ๋ƒ๊ณ  ๋ฌผ์–ด๋ณด๋Š” ๋ง์— y๋ผ๊ณ  ๋‹ตํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ ์บก์ณ์ฒ˜๋Ÿผ ์—ด์–ด์ค€๋‹ค. ์œ„์—์„œ ๋ดค๋˜ ํ„ฐ๋ฏธ๋„์€ ๋ฌธ์ œ ํ‘ธ๋Š” ๊ธฐ๋ถ„์ธ๋ฐ ํ™•์‹คํžˆ ๋‚˜์•„์ง„ UI๋กœ ํ™•์ธํ•˜๋‹ˆ๊นŒ ๋ˆˆ์ด ํŠธ์ธ๋‹ค.

 

git difftool ์ค‘์—์„œ๋„ staged์ธ ๊ฒƒ์„ ํ™•์ธํ•ด๋ณด๊ณ  ์‹ถ์„ ๋•Œ, git difftool --staged๋ผ๊ณ  ์ž…๋ ฅํ•˜๋ฉด ํ•˜๋‚˜ํ•˜๋‚˜ ์นœ์ ˆํ•˜๊ฒŒ ๋ฌผ์–ด๋ด์ค€๋‹ค. y๋ผ๊ณ  ๋‹ตํ•˜๋ฉด ์—ด์–ด์ค€๋‹ค.

cssํŒŒ์ผ์— ๋นจ๊ฐ„์ค„์ด ๋œฌ ์ด์œ ๋Š” ๋‹น์—ฐํžˆ css ํŒŒ์ผ ๋ฌธ๋ฒ•์— ์–ด๊ธ‹๋‚˜๊ฒŒ ๊ทธ๋ƒฅ ๋ง‰ ์ ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

 

* commit : ๋ฒ„์ „์„ ๋“ฑ๋ก, staging area์— ์žˆ๋˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋“ค์„ Git repository์— ์˜ฎ๊ฒจ์ฃผ๋Š” ์—ญํ• 

์•„๋ฌด๋Ÿฐ ์—†์ด git commit์„ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ธฐ๋ณธ ํ…œํ”Œ๋ฆฟ์ด ๋‚˜์˜จ๋‹ค.

 

์ผ๋‹จ Title๊ณผ Description์„ ์ ์–ด์ฃผ๊ณ (๋‚ด์šฉ ์—†์ด ์ง„์งœ ์Ÿค๋„ค๋งŒ ์ ๊ธด ํ–ˆ์ง€๋งŒ...) ์ €์žฅ ํ›„ ๋‹ค์‹œ ํ„ฐ๋ฏธ๋„๋กœ ๋Œ์•„๊ฐ€๋ฉด ์ปค๋ฐ‹ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

master (root-commit) >> ์ฆ‰ master branch์—์„œ ์ปค๋ฐ‹๋์œผ๋ฉฐ 70385c8์€ ํ•ด์‰ฌ์ฝ”๋“œ์˜ ๋งจ ์•ž ๋ถ€๋ถ„๋งŒ ๋”ฐ์„œ ๋ณด์—ฌ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  Title์€ ํƒ€์ดํ‹€์ด๋‹ค. 3๊ฐ€์ง€ ํŒŒ์ผ๋“ค์ด ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋ฉฐ, 3๊ฐ€์ง€๊ฐ€ ์‚ฝ์ž…๋˜์—ˆ์Œ์„ ๋ณด์—ฌ์ค€๋‹ค.

ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ git log๋ฅผ ์ด์šฉํ•ด๋ณด๋ฉด

 

commit ๋’ค์— ์ „์ฒด ํ•ด์‰ฌ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ˆ„๊ฐ€ ํ–ˆ๋Š”์ง€ (Hayeon^^... ), ์–ธ์ œ ํ–ˆ๋Š”์ง€ (์ƒˆ๋ฒฝ 3์‹œ๊ฐ€ ๋„˜์—ˆ๋„ค...), ๊ทธ๋ฆฌ๊ณ  ์ œ๋ชฉ๊ณผ ์„ค๋ช…์ด ๋‚˜์™€ ์žˆ๋‹ค. 

์ง€๊ธˆ์€ ์ฒ˜์Œ ์ปค๋ฐ‹์ด๋‹ˆ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์ €๊ฑฐ ํ•˜๋‚˜ ๋œ๋ ~ ์žˆ์ง€๋งŒ ์ฒ˜์Œ์ด ์•„๋‹Œ ํŒŒ์ผ์ผ ๋•Œ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‚˜์˜ค๋Š”์ง€ ๋ณด๊ณ ์‹ถ์œผ๋‹ˆ๊นŒ ๋งŒ๋งŒํ•œ c.txt์— 'add'๋ฅผ ์ถ”๊ฐ€ํ•ด๋ณด์ž.

 

๋’ค์— ํฌ์ŠคํŒ…ํ•˜๋Š”๊ฑฐ ๋‹ค ๋น„์นœ๋‹ค ()... 

 

git commit -m "second commit"

์ € ๊ณผ์ • ์†์—์„œ commit ๋’ค์˜ -m์€ message๋ฅผ ๋œปํ•˜๋ฉฐ, ๊ทธ ๋’ค์—๋Š” ์ „๋‹ฌํ•  ๋ฉ”์‹œ์ง€์˜ ๋‚ด์šฉ์„ ์˜๋ฏธํ•œ๋‹ค.

์‹ค์ œ๋กœ ๋‘๋ฒˆ์งธ ํžˆ์Šคํ† ๋ฆฌ์—๋Š” commit ํ•ด์‰ฌ์ฝ”๋“œ, ๋งŒ๋“  ์‚ฌ๋žŒ, commitํ•œ ์‹œ๊ฐ„์ด ๋œจ์ง€๋งŒ ๋ฉ”์‹œ์ง€์ธ second commit์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด ๊ณผ์ •์€ ์ข€ ๋ฒˆ๊ฑฐ๋กญ๋‹ค๊ณ  ๋А๋‚„ ์ˆ˜ ์žˆ๋‹ค. ๊ตณ์ด staged ์ƒํƒœ๋กœ ๋„ฃ์–ด์„œ ๊ทธ ๋‹ค์Œ์— commit์„ ํ•˜์ง€ ์•Š๊ณ , ์ง€๊ธˆ working directory์— ์žˆ๋Š” ์ด ํŒŒ์ผ์„ ๋ฐ”๋กœ commitํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š”

 

git commit -am "third commit"

 

์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค.

 

commit๋’ค์— -a๋Š” -add๋ฅผ , -m์€ message๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ๋‚ด์šฉ์€ "third commit".

๊ตณ์ด ์—ฌ๋Ÿฌ ๋ฌธ์žฅ ์“ธ ํ•„์š” ์—†์ด ํ•œ๋ฒˆ์— working directory -> staged area -> .git directory๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

git status๋กœ ํ™•์ธํ•ด๋„ ๋ชจ๋‘ ๊น”๋”ํ•˜๊ฒŒ commit๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

- commit ์‹œ ํŒ

  • application์„ ๋งŒ๋“ค ๋•Œ, git์˜ ํžˆ์Šคํ† ๋ฆฌ์— ์ „์ฒด์ ์ธ application์„ ๋งŒ๋“ค์–ด ํ•˜๋‚˜์˜ commit์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค. application์„ ์กฐ๊ธˆ ๋” ์„ธ๋ถ„ํ™”ํ•ด ๊ธฐ๋Šฅ ๋ณ„๋กœ, ์ž‘์€ ๋‹จ์œ„๋กœ ๋„ฃ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  ๊ทธ๋ƒฅ ๋„ˆ๋ฌด ์ž‘๊ฒŒ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์•Œ๋งž์€ ์ œ๋ชฉ์„ ๋ถ™์—ฌ ๊ธฐ๋Šฅ๋ณ„๋กœ ์ •๋ฆฌํ•œ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”, ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ๋ชจ๋“ˆ, ์‚ฌ์šฉ์ž Repository(์ €์žฅ์†Œ), ์›ฐ์ปด ํŽ˜์ด์ง€, about ํŽ˜์ด์ง€, light theme,ark theme ์ด๋Ÿฐ์‹์œผ๋กœ ๋‚˜๋ˆ„์–ด commitํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๊ณ  ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ commit ์ทจ์†Œํ•˜๊ธฐ๋„ ํŽธํ•˜๋‹ค.
  • ๋ณดํ†ต commit ์ œ๋ชฉ์€ ํ˜„์žฌํ˜• ๋™์‚ฌ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค. init, add, fix๊ฐ€ ์ฃผ๋กœ ์“ฐ์ธ๋‹ค.
  • ์ฃผ์˜ํ•  ์ ์€, ์˜ˆ๋ฅผ ๋“ค์–ด commit์„ ํ•  ๋•Œ ๋กœ๊ทธ์ธ ๋ชจ๋“ˆ์— ์ƒ๊ธด crash๋ฅผ fixํ–ˆ๋‹ค๊ณ  ์ œ๋ชฉ์„ ๋ถ™์˜€์„ ๋•Œ, ํ•ด๋‹น ๋‚ด์šฉ์€ ์ •๋ง ๊ทธ crashํ•œ ๋ถ€๋ถ„๋งŒ ๊ณ ์น˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ธฐ์™• ํ•œ๋‹ค๊ณ  ๋‹ค๋ฅธ ๋ฒ„๊ทธ๋„ ๊ณ ์น˜๊ณ , ๋ฆฌํŒฉํ† ๋ง๋„ ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋„ฃ๊ฒŒ ๋˜๋ฉด ์ฝ”๋“œ ๋ฆฌ๋ทฐ์™€ ํžˆ์Šคํ† ๋ฆฌ ํ™•์ธ์—๋„ ํ˜ผ๋™์ด ์˜ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

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

๊นƒ ์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ์„ค์ •  (0) 2025.04.01
3-2. ๊ธฐ๋ณธ ๋ช…๋ น์–ด  (0) 2022.02.21
2. ์…‹์—…ํ•˜๊ธฐ  (0) 2022.02.14
1-2 ๋ฆฌ๋ˆ…์Šค ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด  (0) 2022.02.12
1-1. Git  (0) 2022.02.07