Git ์์ ํ์ผ์ ์ํ๋ ํฌ๊ฒ 4๊ฐ์ง๋ก ๊ตฌ๋ถํ ์ ์๋ค.
โ untracked
git์ add๋์ง ์์ ์ํ
โ unmodified
git์ add๋ ๋์์ง๋ง, ์์ ์ด ๋์ง ์์ ์ํ
โ modified
ํ์ผ์ด ์์ ๋์์ผ๋ commitํ ์ค๋น๊ฐ ๋์ง ์์ ์ํ
โ staged
ํ์ผ ์์ ์ด ์๋ฃ๋์ด commit๋ง ํ๋ฉด ๋๋ ์ํ
์ด ๋, ์ํน ๋๋ ํ ๋ฆฌ์ ๋ชจ๋ ํ์ผ์ ํฌ๊ฒ 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://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 |