-
Basic Git Workflow : Add, CommitGit 2026. 5. 20. 17:34๋ฐ์ํ
Git Status ๋ช ๋ น์ด
git status ๋ช ๋ น์ด๋ Git ๋ ํฌ์งํ ๋ฆฌ์ ์ํ๋ฅผ ํ์ธํ๋๋ฐ ์ฌ์ฉ๋๋ ๋ช ๋ น์ด
git status ๋ช ๋ น์ด๋ฅผ ํตํด ์ด๋ค ํ์ผ์ด ์์ ๋์๋์ง,
์ด๋ค ํ์ผ์ด ์์ง ์คํ ์ด์ง๋์ง ์์๋์ง,
ํ์ฌ ์ด๋ค ๋ธ๋์น์ ์์นํด ์๋์ง ๋ฑ์ ์ ๋ณด ํ์ธ ๊ฐ๋ฅ
git์ ์ํด ์ถ์ ๋์ง ์์ ๋ช ๋ น์ด… ์๋ ค์ค
์ฌ์ฉ๋ฒ
git status ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ํ์ฌ ๋ ํฌ์งํ ๋ฆฌ์ ์ํ ์ถ๋ ฅ
git status์์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด Git์ ์๋์ ๊ฐ์ ์ข ๋ฅ์ ์ ๋ณด๋ฅผ ์ถ๋ ฅ
- ํ์ฌ ์ฒดํฌ์์๋ ๋ธ๋์น ์ด๋ฆ
- ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐ๋ ํ์ผ (Changes to be committed)
- ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐ๋์ง ์์ ์์ ๋ ํ์ผ๋ค (Changes not staged for commit)
- Git์ ์ํด ์ถ์ ๋์ง ์๋ ์๋ก์ด ํ์ผ๋ค (Untracked files)
ํน์ง
git status ๋ช ๋ น์ด๋ “safe” ๋ช ๋ น์ด๋ก ๊ฐ์ฃผ
์ฆ, ์ด ๋ช ๋ น์ด๋ ๋ ํฌ์งํ ๋ฆฌ์ ์ด๋ ํ ๋ณ๊ฒฝ๋ ๊ฐํ์ง ์๊ณ ์ค์ง ์ ๋ณด๋ง์ ์ ๊ณต
๋ฐ๋ผ์ ์ธ์ ๋ ์ง ์ฌ์ฉ ๊ฐ๋ฅํ ์์ ํ ๋ช ๋ น์ด(์ธ์ ๋ ์ ๋ ฅํด๋ ์ํ ์์)
๐ ์ ๋ฆฌ
git status ๋ช ๋ น์ด๋ Git ์ฌ์ฉ์์๊ฒ ํ์ฌ ๋ ํฌ์งํ ๋ฆฌ์ ์ํ์ ๋ํ ์ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณต
์ด ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ์ด๋ค ํ์ผ์ด ์์ ๋์๋์ง,
์ด๋ค ํ์ผ์ด ์คํ ์ด์ง ์์ญ์ ์๋์ง,
ํ์ฌ ์ด๋ค ๋ธ๋์น์ ์๋์ง ๋ฑ์ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ํ์ ๊ฐ๋ฅ
์ด๋ ์ฝ๋์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๋์ฑ ํจ์จ์ ์ผ๋ก ์งํํ ์ ์๊ฒ ๋์
Git์์ ๋ฒ์ ์ ์์ฑํ๋ ํ๋ฆ: add, commit

Git์์ ์์ค์ฝ๋์ ๋ณ๊ฒฝ์ฌํญ์ ์ถ์ ํ๊ณ ์๋ก์ด ๋ฒ์ ์ ์์ฑํ๋ ๊ธฐ๋ณธ์ ์ธ ํ๋ฆ์ git add์ git commit ๋ช ๋ น์ด ์ฌ์ฉ
1. git add: ๋ณ๊ฒฝ๋ ํ์ผ๋ค์ ์คํ ์ด์ง ์์ญ(๋๋ ์ธ๋ฑ์ค)์ ์ถ๊ฐํ๋๋ฐ ์ฌ์ฉ
git add filename๋๋, ํ์ฌ ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ์ ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐํ๋ ค๋ฉด ์๋์ ๊ฐ์ด ์คํ ๊ฐ๋ฅ
git add .์ด๋ ๊ฒ ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐ๋ ํ์ผ๋ค์ ๋ค์ ์ปค๋ฐ์ ํฌํจ๋ ์ค๋น๊ฐ ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ
2. git commit: ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐ๋ ๋ณ๊ฒฝ ์ฌํญ๋ค์ ์ค์ ๋ก ๋ ํฌ์งํ ๋ฆฌ์ ์ ์ฅ(์ปค๋ฐ)ํ๋ ๋ฐ ์ฌ์ฉ
git commit -m "Your commit messge"์ปค๋ฐ ์์ฑํ ๋๋ ํด๋น ๋ณ๊ฒฝ์ฌํญ์ ๋ํ ์ค๋ช ์ ๋ด์ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ํจ๊ป ์์ฑํด์ผ ํจ
Working Tree, Staging Area, Repository์ ๊ตฌ์กฐ
๊ธฐ๋กํ๊ธฐ ์ํด
๊น์ ์ ์ฅ์ ์ด 3๊ฐ์ ์์ญ์ผ๋ก ๋๋
1. Working Tree (์์ ํธ๋ฆฌ):
์ค์ ๋ก ํ์ผ์ ์์ ํ๋ ์์ ๊ณต๊ฐ
์ฆ, ํ์ผ์ ์์ฑ, ์์ , ์ญ์ ํ๋ ๋ชจ๋ ์์ ์ด ์ด๋ฃจ์ด์ง๋ ๊ณต๊ฐ
2. Staging Area (์คํ ์ด์ง ์์ญ ๋๋ ์ธ๋ฑ์ค):
git add ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ๋ณ๊ฒฝ๋ ํ์ผ๋ค์ด ๋จผ์ ์ถ๊ฐ๋๋ ์์ ์ ์ฅ ๊ณต๊ฐ
์ด๊ณณ์ ์ถ๊ฐ๋ ๋ณ๊ฒฝ์ฌํญ๋ค์ ๋ค์ git commit ๋ช ๋ น์ด ์คํ ์ ๋ ํฌ์งํ ๋ฆฌ์ ์ ์ฅ
3. Repository (๋ ํฌ์งํ ๋ฆฌ):
git commit ๋ช ๋ น์ด๊ฐ ์คํ๋๋ฉด, ์คํ ์ด์ง ์์ญ์ ์๋ ๋ณ๊ฒฝ์ฌํญ๋ค์ด ๋ ํฌ์งํ ๋ฆฌ์ ์ ์ฅ
ํ์คํ ๋ฆฌ๋ก ๋จ๊น
๋ ํฌ์งํ ๋ฆฌ๋ ํ๋ก์ ํธ์ ๋ชจ๋ ๋ฒ์ ๊ณผ ์ด๋ ฅ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ์ผ๋ก, .git ๋๋ ํ ๋ฆฌ ์์ ์์น
์ด ์ธ ๊ฐ์ง ์์ญ์ Git์ ํต์ฌ์ ์ธ ๋ถ๋ถ์ผ๋ก์, Git์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์์ ์ค์ํ ์ญํ ์ ์ํ
์ด๋ค์ ํตํด, ๊ฐ๋ฐ์๋ ์์ค์ฝ๋์ ๋ณ๊ฒฝ์ฌํญ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ํน์ ์์ ์ ๋ฒ์ ์ผ๋ก ์ฝ๊ฒ ๋๋์๊ฐ ์ ์์
์ค์ต
1. ์ด์ ์ฑํฐ์์ ๋ง๋ git repository์์ ์์
cd ๋ช ๋ น์ด๋ก ์ด๋
2. git status ๋ช ๋ น์ด๋ฅผ ์ฐ๋ฉด ์์ง ์ด๋ ํ ๋ณ๊ฒฝ์ฌํญ๋ ์๋ค๊ณ ๋์ด
git status
3. ์๋ก์ด ํ์ผ 2๊ฐ ์์ฑ

touch MC-Info.txt Guest-Info.txt # ํ ์คํธ ํ์ผ ์์ฑ ls4. ๋ค์ git status๋ฅผ ์ ๋ ฅํ๋ฉด ์ถ๊ฐ๋ ํ์ผ 2๊ฐ๋ฅผ ์ถ์ ํ๊ณ ์๋ ๊ฒ์ ํ์ธํ ์ ์์

git status5. ์ฒซ๋ฒ์งธ ํ์ผ์ Addํด Staging Area์ ์ฌ๋ฆผ
๊ทธ๋ฆฌ๊ณ ๋ ๋ค git status๋ฅผ ๋ค์ ํ์ธ

git add MC-Info.txt git status6. ๋๋ฒ์งธ ํ์ผ๋ addํ๊ณ git status ํ์ธ

7. ์คํ ์ด์ง๋ 2๊ฐ์ ํ์ผ ๋ฌถ์์ ํ๋์ ๋ฒ์ ์ผ๋ก ์์ฑํ๊ธฐ ์ํด git commit ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅ

git commit -m "#1. ๋ฎค์ง๋ฑ ํฌ MC์ ๋ณด์ ์ถ์ฐ์ง ์ ๋ณด๋ฅผ ๊ธฐ๋กํ ํ์ผ ์ถ๊ฐ!"8. git log ๋ช ๋ น์ด๋ก ์์ฑ๋ ๋ฒ์ ์ ๋ณด ํ์ธ

git log # ๊ธฐ๋ก ํ์ธ(์ฐธ๊ณ ) commit id ์ด์ฉํด ์ํ๋ ์์ ์ผ๋ก ์ด๋ ๊ฐ๋ฅ
9. MC-Info.txt ํ์ผ์ ์ด์ด ๋ด์ฉ์ ์์ฑํ๊ณ ์ ์ฅ ํ ์ข ๋ฃํ ๋ค git status ์ ๋ ฅ

git statusuntracked ํ์ผ์ ์ถ์ ๋์ง ์์ ๊ฒ
modified ํ์ผ์ด ์์ ๋จ
10. 2๋ฒ์งธ ํ์ผ๋ ์์ ํ ํ git status๋ฅผ ์ณ๋ณด๋ฉด ์์ ๋ ๊ฒ์ ์ถ์ ํ๋ ๊ฒ์ ๋ณผ ์ ์์

git status11. git add, git commit ๋ช ๋ น์ด๋ก 2๋ฒ์งธ ๋ฒ์ ์ ์์ฑํ๊ณ git log๋ก ํ์ธ

git commit -m "#2_์ ์จ์ ๋ณด์ ์ถ์ฐ์ง ์ ๋ณด ๋ฑ๋ก”12. ์ด๋ฐ ์์ผ๋ก ๋ฒ์ ์ 2๊ฐ ๋ ๋ง๋ค์ด๋ณด์
๊ทธ๋ฆฌ๊ณ ‘git log —oneline’ ์ ์ ๋ ฅํด ๋ก๊ทธ๋ฅผ 1์ค๋ก ์ถ๋ ฅํด๋ณด์



git log —oneline //๋ก๊ทธ ํ ์ค๋ก ํ์ธ ๊ฐ๋ฅ(์ฐธ๊ณ )
head ํ์ฌ ์์น ์์
Exercise
1. Shopping ์ด๋ฆ์ ์ ํด๋๋ฅผ ๋ง๋ฆ

2. Shopping ํด๋ ๋ด์์ ์๋ก์ด git ์ ์ฅ์๋ฅผ ์ด๊ธฐํ (์ด๋ฏธ Git ์ ์ฅ์ ์์ ์๋์ง ํ์ธ)

3. yard.txt ๋ผ๋ ์ ํ์ผ์ ๋ง๋ฆ
4. groceries.txt ๋ผ๋ ๋ ๋ค๋ฅธ ์ ํ์ผ์ ๋ง๋ฆ

5. ๋ ๊ฐ์ ๋น ํ์ผ์ ํฌํจํ ์ปค๋ฐ์ ๋ง๋ฆ
๋ฉ์์ง๋ “create yard and groceries lists” ๋ก ํจ

6. yard.txt ํ์ผ์ ๋ค์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐ
- 2 bags of potting soil - 1 bag of worm castings
7. groceries.txt ํ์ผ์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐ
- 4 tomatoes - 6 shallots - 1 fennel bulb
8. groceries.txt ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ๋ง์ ํฌํจํ๋ ์๋ก์ด ์ปค๋ฐ์ ๋ง๋ฆ
์ปค๋ฐ ๋ฉ์์ง๋ “add ingredients for tomato soup” ๋ก ํจ

9. yard.txt ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ๋ง์ ํฌํจํ๋ ๋ ๋ฒ์งธ ์ปค๋ฐ์ ๋ง๋ฆ
์ปค๋ฐ ๋ฉ์์ง๋ “add items needed for garden box” ๋ก ํจ

10. ๋ค์ ์ค์ groceries.txt ํ์ผ์ ๋์ ์ถ๊ฐํจ
- couple of seed potatoes
11. yard.txt ํ์ผ์์ ์ฒซ ๋ฒ์งธ ์ค์ “2 bags of potting soil” ๋์ “3 bags of potting soil” ๋ก ๋ณ๊ฒฝ
- 3 bags of potting soil - 1 bag of worm castings
12. yard.txt ํ์ผ๊ณผ groceries.txt ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ ํฌํจํ๋ ์ปค๋ฐ์ ๋ง๋ฆ
๋ฉ์์ง๋ “add items needed to grow potatoes” ๋ก ํจ
Git ๋ช ๋ น์ ์ฌ์ฉํด ์ปค๋ฐ ๋ชฉ๋ก์ ํ์
์ด 4๊ฐ์ ์ปค๋ฐ์ด ๋ณด์ฌ์ผ ํจ
๋ฐ์ํ'Git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git] Merge vs Rebase / Fetch vs Pull ์ฐจ์ด (0) 2026.07.07 [Git] Atomic Commit๊ณผ ์ข์ ์ปค๋ฐ ๋ฉ์์ง ์์ฑ๋ฒ (0) 2026.06.05 Git Repository (0) 2026.05.20 ๊ธฐ๋ณธ ํฐ๋ฏธ๋ ๋ช ๋ น์ด (0) 2026.05.20 Git Intro (0) 2026.05.09