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

์ขŒ: ํŒŒ์ผ ์˜์—ญ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด // ์šฐ: ํŒŒ์ผ ์ƒํƒœ ๋ผ์ดํ”„ ์‚ฌ์ดํด

 

  • untracked: ์ƒˆ๋กœ์šด ํŒŒ์ผ
  • modified : ์ถ”์ ํŒŒ์ผ and ์ˆ˜์ •ํ•จ

 

1. staging area ์˜์—ญ ํŒŒ์ผ ํ™•์ธ: git status

$ git status

- Staging area์˜ ์–ด๋–ค ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€, Staging file๋“ค์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์ƒˆ๋กœ ๋งŒ๋“  ํŒŒ์ผ์˜ ADD ์—ฌ๋ถ€ ํ™•์ธ

- ์ปค๋ฐ‹๋œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  ์žˆ๋Š”์ง€์˜ ์—ฌ๋ถ€ ํ™•์ธ

- untracked, tracked ์ƒํƒœ ํ™•์ธ
- ๋ช…๋ น์–ด๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ๋•Œ ์—๋Ÿฌ ํ™•์ธ
- ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ ํŒŒ์ผ ์™ธ์— ๋‹ค๋ฅธ ํŒŒ์ผ์ด ์ˆ˜์ •๋˜์ง„ ์•Š์•˜๋Š”์ง€ ํ™•์ธ

โ€‹

2. ์ฝ”๋“œ๋กœ ์‚ดํŽด๋ณด๋Š” ํŒŒ์ผ ์ƒํƒœ

1. article.js, comment.js, user.js ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  addํ•˜์ง€ ์•Š์€ ์ƒํ™ฉ์ด๋‹ค.

2. git add ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด article.js ํŒŒ์ผ์„ staging area์— ์˜ฌ๋ ธ๋‹ค.

$ git add article.js

 

3. add ๋ช…๋ น์–ด๋ฅผ ์ทจ์†Œ

- ์–ด๋–ค ํŒŒ์ผ์„ add ํ•˜๋ฉด ์•ˆ๋˜๋Š”๋ฐ addํ•œ ๊ฒฝ์šฐ, ํŒŒ์ผ์„ addํ•˜๊ธฐ ์ „ ์ƒํƒœ์ธ unstage ์ƒํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

$ git reset article.js
# staging area์—์„œ ํŒŒ์ผ์„ ๋‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด ์ž์ฃผ ์“ด๋‹ค.

$ git rm --cahce article.js
# git rm ๋ช…๋ น์–ด๋Š” Git์ด ์ถ”์ ํ•˜์ง€ ์•Š๋Š” untracked file๋กœ ๋งŒ๋“ ๋‹ค.
# git rm์€ ์›๊ฒฉ์ €์žฅ์†Œ์™€ ๋กœ์ปฌ์ €์žฅ์†Œ์˜ staging area ์—์„œ ํŒŒ์ผ์„ ๋‚ด๋ฆฌ๋ฉด์„œ ์‹ค์ œ ํŒŒ์ผ๋„ ์‚ญ์ œํ•œ๋‹ค.
# --cached ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์›๊ฒฉ์ €์žฅ์†Œ์˜ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ , staging area์—์„œ ํŒŒ์ผ์„ ๋‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด ์“ด๋‹ค.

 

4. ์ปค๋ฐ‹๋œ article.js๋ฅผ ์ˆ˜์ •ํ•  ๊ฒฝ์šฐ

article.js์˜ ์ƒํƒœ๋Š” modified์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

 

5. $ git diff ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด commit๋œ ํŒŒ์ผ์ƒํƒœ์™€ ํ˜„์žฌ ์ˆ˜์ •์ค‘์ธ ์ƒํƒœ ๋น„๊ตํ•œ๋‹ค.

 

3. Local Repo ์ €์žฅ์†Œ ๋ฐ˜์˜ ๋‚ด์—ญ ํ™•์ธ: git log

$ git log

Local Repo์— ๋ฐ˜์˜๋œ commit ๋‚ด์—ญ์„ ํ™•์ธํ•œ๋‹ค.

$ git log -p -3

# -p, --patch : ๊ฐ commit ์˜์ˆ˜์ • ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” diff์™€ ๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
# -n : ์ƒ์œ„ n๊ฐœ์˜ commit๋งŒ ๋ณด์—ฌ์ค€๋‹ค.
$ git log --stat

# --stat: ์–ด๋–ค ํŒŒ์ผ์ด commit์—์„œ ์ˆ˜์ •๋˜๊ณ  ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€, ํ”ผ์ผ ๋‚ด ๋ผ์ธ์˜ ์ˆ˜์ •์‚ฌํ•ญ ํ™•์ธ
$ git log --pretty=onelie

# --pretty=onelie: ๊ฐ commit์„ ํ•œ ์ค„๋กœ ์ถœ๋ ฅํ•œ๋‹ค.
$ git log  --graph

# --graph: commit๊ฐ„์˜ ์—ฐ๊ฒฐ๋œ ๊ด€๊ณ„๋ฅผ ์•„์Šคํ‚ค ๊ทธ๋ž˜ํ”„๋กœ ์ถœ๋ ฅํ•œ๋‹ค.
$ git log -S function_name

# -S: ์ฝ”๋“œ์—์„œ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋œ ๋‚ด์šฉ ์ค‘ ํŠน์ • ํ…์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค.
# ์œ„ ์ฝ”๋“œ์—์„œ๋Š” funcion_name์ด ์ถ”๊ฐ€ ํ˜น์€ ์ œ๊ฑฐ ๋˜์—ˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค.

 

4. ์ •๋ฆฌ

- git add ๋ช…๋ น์–ด๋ฅผ ๊ฑฐ์นœ ํŒŒ์ผ์€ Stagged ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

- Untracked ํŒŒ์ผ์„ Git์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” add๋ฅผ ํ•ด์•ผํ•œ๋‹ค.

- Unmodified ํŒŒ์ผ์€ ํ•ญ์ƒ Git ์ €์žฅ์†Œ์— ์žˆ๋Š” ํŒŒ์ผ๊ณผ ๋‚ด์šฉ์ด ๊ฐ™์Œ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

- Modified ํŒŒ์ผ๋“ค์˜ ๊ฐฑ์‹ ๋œ ๋‚ด์—ญ์„ ์ €์žฅ์†Œ์— ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด add์™€ commit์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

- commit์„ ์ง„ํ–‰ํ•˜๋ฉด Stagged ํŒŒ์ผ๋“ค์ด ์ €์žฅ์†Œ์— ๋ฐ˜์˜๋˜๋ฉฐ, unmodified์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

๋ฐ˜์‘ํ˜•