[Git] ํŒŒ์ผ์˜ ์ƒํƒœ์™€ ๋ผ์ดํ”„ ์‚ฌ์ดํด
git

[Git] ํŒŒ์ผ์˜ ์ƒํƒœ์™€ ๋ผ์ดํ”„ ์‚ฌ์ดํด

Git ์—์„œ ํŒŒ์ผ์˜ ์ƒํƒœ๋Š” ํฌ๊ฒŒ 4๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ… untracked
    git์— add๋˜์ง€ ์•Š์€ ์ƒํƒœ
โœ… unmodified
    git์— add๋Š” ๋˜์—ˆ์ง€๋งŒ, ์ˆ˜์ •์ด ๋˜์ง€ ์•Š์€ ์ƒํƒœ
โœ… modified
    ํŒŒ์ผ์ด ์ˆ˜์ •๋˜์—ˆ์œผ๋‚˜ commitํ•  ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์€ ์ƒํƒœ
โœ… staged
    ํŒŒ์ผ ์ˆ˜์ •์ด ์™„๋ฃŒ๋˜์–ด commit๋งŒ ํ•˜๋ฉด ๋˜๋Š” ์ƒํƒœ

 

์ถœ์ฒ˜: https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-Git-%EC%A0%80%EC%9E%A5%EC%86%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

์ด ๋•Œ, ์›Œํ‚น ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์€ ํฌ๊ฒŒ Tracked(๊ด€๋ฆฌ๋Œ€์ƒ)์™€ Untracked(๊ด€๋ฆฌ๋Œ€์ƒ ์•„๋‹˜)๋กœ ๋‚˜๋ˆˆ๋‹ค.

Tracked ํŒŒ์ผ์€ ์ด๋ฏธ ์Šค๋ƒ…์ƒท์— ํฌํ•จ๋ผ ์žˆ๋˜ ํŒŒ์ผ์ด๋‹ค. ์ฆ‰, Git์ด ์•Œ๊ณ  ์žˆ๋Š” ํŒŒ์ผ์ด๋‹ค.

๋‚˜๋จธ์ง€ ํŒŒ์ผ์€ ๋ชจ๋‘ Untracked ํŒŒ์ผ์ด๋‹ค. ์›Œํ‚น ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ ์ค‘ ์Šค๋ƒ…์ƒท์—๋„ Staging Area์—๋„ ํฌํ•จ๋˜์ง€ ์•Š์€ ํŒŒ์ผ์ด๋‹ค.

์ด๊ฒƒ์„ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1๏ธโƒฃ Tracked(๊ด€๋ฆฌ๋Œ€์ƒ)
    - unmodified
    - modified
    - staged
2๏ธโƒฃ Untracked(๊ด€๋ฆฌ๋Œ€์ƒ ์•„๋‹˜)
    - tracked๊ฐ€ ์•„๋‹Œ๋ชจ๋“  ํŒŒ์ผ

 

ํŒŒ์ผ์˜ ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ

์ตœ์ดˆ ์ƒํƒœ(init์„ ํ•˜๊ฑฐ๋‚˜ clone์„ ํ•œ ์ƒํƒœ)์—์„œ git status ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

 

ํ˜„์žฌ master ๋ธŒ๋žœ์น˜๋กœ ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ๊ณ , ์•„์ง ํด๋” ๋‚ด์— ์•„๋ฌด๋Ÿฐ ํŒŒ์ผ ์ƒํƒœ ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋‚ด์šฉ์ด๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜๊ณ , ๋‹ค์‹œ ์ƒํƒœ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        README.md

nothing added to commit but untracked files present (use "git add" to track)

๋กœ์ปฌ ํด๋”์—๋Š” ์ •์ƒ์ ์œผ๋กœ ํŒŒ์ผ์ด ์ถ”๊ฐ€๋˜์—ˆ์ง€๋งŒ, ์•„์ง Git์—๋Š” add๊ฐ€ ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

 

ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ถ”์ ํ•˜๊ธฐ

์ด์ œ git add ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์œ„์—์„œ ์ƒ์„ฑํ•œ 'README.md'ํŒŒ์ผ์„ Git์— ๋“ฑ๋กํ•œ๋‹ค.

$ git add README.md
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   README.md

'Changes to be committed'์— ํฌํ•จ๋œ ํŒŒ์ผ์€ Staged ์ƒํƒœ๋ผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. 

 

Modified ์ƒํƒœ์˜ ํŒŒ์ผ์„ Stage ํ•˜๊ธฐ

commit์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ํŒŒ์ผ์˜ ์ˆ˜์ •์ด ์™„์ „ํžˆ ๋๋‚˜๊ณ  ์•ˆ์ •์ (Staged)์ธ ๋‹จ๊ณ„๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ํŒŒ์ผ์˜ ์ˆ˜์ •์ด ์™„๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ํŒŒ์ผ์˜ ์ƒํƒœ๋ฅผ Staged ์ƒํƒœ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

CONTRIBUTING.md๋ผ๋Š” ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  ๋‚˜์„œ git status ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   CONTRIBUTING.md
        new file:   README.md

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   CONTRIBUTING.md

CONTRIBUTING.md ํŒŒ์ผ์€ 'Changes not staged for commit'์— ์žˆ๋‹ค. ์ด๊ฒƒ์€ ์ˆ˜์ •ํ•œ ํŒŒ์ผ์ด Tracked ์ƒํƒœ์ด์ง€๋งŒ, ์•„์ง Staged ์ƒํƒœ๋Š” ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋•Œ ์ด๋Ÿฌํ•œ ์ƒํƒœ์˜ ํŒŒ์ผ์„ Staged ์ƒํƒœ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ช…๋ น์–ด๋Š” git add ์ด๋‹ค. git add ๋ช…๋ น์€ ํŒŒ์ผ์„ Git์—์„œ ๊ด€๋ฆฌํ•˜๋„๋ก ๋“ฑ๋กํ•  ๋•Œ๋„ ์‚ฌ์šฉํ•˜๊ณ , ์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ Staged ์ƒํƒœ๋กœ ๋งŒ๋“ค ๋•Œ๋„ ์‚ฌ์šฉํ•œ๋‹ค.

$ git add CONTRIBUTING.md
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   CONTRIBUTING.md
        new file:   README.md

CONTRIBUTING.md๋ฅผ git add ํ•ด์ฃผ๊ณ  ๋‚˜๋ฉด, 'Changes to be committed'๋กœ ์˜ฎ๊ฒจ์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ณ€๊ฒฝ์‚ฌํ•ญ ์ปค๋ฐ‹ํ•˜๊ธฐ

์ƒˆ๋กœ ์ƒ์„ฑ, ์ˆ˜์ •ํ•œ ํŒŒ์ผ๋“ค์„ ์ปค๋ฐ‹ํ•˜๊ธฐ ์œ„ํ•ด Staging Area์— ํŒŒ์ผ๋“ค์„ ์ •๋ฆฌํ–ˆ๋‹ค.(Unstaged ์ƒํƒœ์˜ ํŒŒ์ผ์€ ์ปค๋ฐ‹๋˜์ง€ ์•Š์Œ) ์ด์ œ ์ด ํŒŒ์ผ๋“ค์€ git commit ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ์ปค๋ฐ‹ํ•  ์ˆ˜ ์žˆ๋‹ค.

$ git commit -m "initial commit"
[master (root-commit) a0446c6] initial commit
 2 files changed, 3 insertions(+)
 create mode 100644 CONTRIBUTING.md
 create mode 100644 README.md

๋งŒ์•ฝ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, --amend ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์„œ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

$ git commit --amend -m "modified commit"
[master 519c17b] modified commit
 Date: Sat Jan 15 17:16:09 2022 +0900
 2 files changed, 3 insertions(+)
 create mode 100644 CONTRIBUTING.md
 create mode 100644 README.md
$ git log
commit 519c17b58ab3d0337bdb876c6936611946185002 (HEAD -> master)
Author: user <user@gmail.com>
Date:   Sat Jan 15 17:16:09 2022 +0900

    modified commit

 

 

 

์ฐธ๊ณ 

https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%88%98%EC%A0%95%ED%95%98%EA%B3%A0-%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0

 

https://snowdeer.github.io/git/2017/08/05/git-reference-2/

 

 

 

 

 

 

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

[Git] Please commit your changes or stash them before you merge.  (0) 2021.07.17
[Git] ๊ฐ•์ œ Pull  (0) 2021.05.25
[Git] ๊ธฐ๋ณธ ๋ช…๋ น์–ด  (0) 2021.05.04