๋ฒ์ ๊ด๋ฆฌ
ํ๋ก์ ํธ๋ฅผ ์งํํ ํด๋๋ก ๊ฐ์

1. git init ์ผ๋ก ํ์ฌ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ฒ์ ๊ด๋ฆฌํ๋ค.
git init

git ํ์ผ์ ์์ฑํ๋ค.
ls -al (ํ์ฌ ํ์ผ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ๋ ๋ช
๋ น์ด)

2. Add
vim f1.txt ( ํ์ผ๋ช
์ด f1 ์ธ ํ
์คํธ ํ์ผ ์์ฑ)

ํค๋ณด๋ I๋ฅผ ๋๋ฅด๋ฉด insert๋ก ๋ฐ๋
๊ทธ๋ฆฌ๊ณ ์ ๋ ฅํ๋ฉด ์ ๋ ฅ์ด ๋๊ณ
esc ๋๋ฅด๋ฉด ์ฝ๊ธฐ๋ง ๊ฐ๋ฅํด์ง๋ค.
Insert ์ํ์์ ์ ๋ ฅํ๊ณ ์ ํ๋ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๊ณ
:wq
๋ฅผ ์ ๋ ฅ ํ ์ํฐ๋ฅผ ๋๋ฅด๋ฉด ์์ ์ฐฝ์์ ๋๊ฐ์ง๊ณ
ํฐ๋ฏธ๋๋ก ๋์์จ๋ค.
๋ค์ ls -al ๋ก ํ์ผ์ด ์ถ๊ฐ๋๋์ง ํ์ธํด๋ณด๋ฉด
์๋์ ๊ฐ์ด ํ ์คํธ ํ์ผ์ด ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

๊ทธ๋ฆฌ๊ณ ๋ง์ฝ f1 ํ์ผ์ ๋ด์ฉ์ด ์ ์์ ์ผ๋ก ๋ฐ์์ด ๋๋์ง ํ์ธํ๊ณ ์ถ์ผ๋ฉด
cat ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด๋๋ค.
cat ํ์ผ๋ช
( ํ์ผ ๋ด์ฉ ์ถ๋ ฅ )

๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ๊ธฐ์ ์ ์ ์ผ ๋จผ์ ์ตํ์ผํ ๋ช ๋ น์ด๋
git status
Untracked files -> ์ถ์ ๋๊ณ ์๋ ์์ ํ์ผ
f1.txt ์ด ์๋ค.
๋ฒ์ ๊ด๋ฆฌ๊ฐ ๋๊ณ ์๋ gitfth ์์ ์กด์ฌํ์ง๋ง
์ด ํ์ผ์ ๊น์๊ฒ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์์ํ๋ผ๊ณ ๋ช ๋ นํ๊ธฐ ์ ์ ๊น์ ํด๋น ํ์ผ์ ๋ฌด์ํ๋ค.

๊ทธ๋์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์์ํ๋ผ๊ณ ๋ช ๋ นํ๋ค
git add [ํ์ผ๋ช
]
f1.txt ํ์ผ์ ์ถ๊ฐํ๊ณ ๋ค์ git status ๋ก ์ํ๋ฅผ ํ์ธํด๋ณด๋

new file๋ก f1.ํ์ผ์ ์ธ์ํ๊ธฐ ์์ํ๋ค.
์๋ก ์ถ๊ฐํ ํ์ผ์ add๋ช ๋ น์ ์ฌ์ฉํด์ ๊น์๊ฒ ์ถ์ ์ ๋ช ๋ นํ ์ ์๋ค.
๋ฒ์ ๋ง๋ค๊ธฐ( commit )
๋ฒ์ ์ ๋จ์๊ฐ ์์
์ด๋ค ์์ ์ด ์์ผ๋ฉด ๊ทธ ์์ ์ด ์๊ฒฐ๋ ์ํ๊ฐ ๋ฒ์ ์ด๋ค.
๊น ๋ฒ์ ์ ์ฒ์ ๋ง๋ค๋ ์ด๋ค ์ฌ๋์ด ํ๋์ง๋ฅผ ํ์ธํ ์ ์๋๋ก
์ด๋ฆ์ ์ง์ ํด์ค๋ค.
์ฒ์ ๋ฑ ํ๋ฒ๋ง ํด์ฃผ๋ฉด ๋จ
git config --global user.name [์ง์ ํ ์ ์ ์ด๋ฆ]
git config --global user.email [์ง์ ํ ์ ์ ์ด๋ฉ์ผ]


I๋ฅผ ์ฌ์ฉํด์ insert๋ก
์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์ ๋ ฅํ๊ณ
:wq
๋ฅผ ์ ๋ ฅํด์ ๋๊ฐ๋ค

์ด์ ๋ฒ์ ์ด ์ ๋ง๋ค์ด์ก๋์ง ํ์ธ ํด๋ณด์.
git log

์ด์ ๋ฒ์ ์ ์ฌ๋ฌ๊ฐ ๋ง๋ค์ด์ ํ์ธํด๋ด

์ด๋ฏธ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๋๊ณ ์๋ ํ์ผ์ ๊ฒฝ์ฐ์๋
add๋ฅผ ๋ ํด์ค์ผํจ
์ต์ด ๋๋ ์์ ๋ผ์ ๋ฒ์ ์ ๋ง๋ค๊ธฐ ์ ์๋ add๋ฅผ ๋จผ์ ํด์ผํจ
์ด์ git commit ์ผ๋ก ์ปค๋ฐ๋ฉ์์ง๋ฅผ 2๋ก ํด์ ์ปค๋ฐ ํ log๋ก ํ์ธํด๋ดค๋ค.
์๋์ ๊ฐ์ด ๋์ด๋๋ ๊ฒ์ ํ์ธํ ์ ์์

๊ทธ๋ผ ์ฌ๋ฌ๊ฐ๋ฅผ ํ๋ฒ์ ์์ ํด์
commit ์์ ์ ๋์น๊ณ ๋์
commit์ ํ๊ณ ์ํ ๋
add๋ฅผ ์ฌ์ฉํ๋ฉด ๋ด๊ฐ commitํ๊ณ ์ ํ๋ ํ์ผ์ ์ ํํด์ commitํ ์ ์๋ค.

์์ ๊ฐ์ด f1.txt๋ง add๋ฅผ ํ ์ํฉ์์
git status๋ฅผ ํ์ธํ๋ฉด
f2.txt๋ commit ๋์ง ์์ ๊ฒ์ด๋ผ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ํ์ธํ ์ ์์
์๋ก์ด๋ฒ์ ์๋ f1์ ๋ค์ด๊ฐ์ง๋ง
f2๋ ๋ค์ด๊ฐ์ง ์๋๋ค. ์ฆ ์ ํ์ ์ผ๋ก ์ปค๋ฐ์ ํ ์ ์์
์ด๋ ๊ฒ ์ปค๋ฐํ๊ณ
์ํ๋ฅผ ํ์ธํด๋ณด๋ฉด ์๋์ ๊ฐ์ด f2๋ ์ปค๋ฐ๋์ง ์์์ ํ์ธ๋๋ค.

๊ทธ๋์
add ๋ฅผ ํต
f1์ ์ปค๋ฐ ๋๊ธฐ ์ํ์ ์ฌ๋ผ๊ฐ๋ ๊ฒ์ด๊ณ
f2๋ ์ปค๋ฐ ๋๊ธฐ ์ํ์ ์ฌ๋ผ๊ฐ์ง ์๋ ๊ฒ
์ด ์ปค๋ฐ ๋๊ธฐ ์ํ์ ์๋ ํ์ผ๋ค์ด ๊ฐ๋ ๊ณณ์ ์คํ ์ด์ง๋ผ๊ณ ํ๋ค.
๋ณ๊ฒฝ์ฌํญ ํ์ธํ๊ธฐ
๋ฒ์ ์ ๋ง๋ค์ด ๋์ผ๋ฉด ์ข์ ์ ์ด ์๋ค.
1. ์ฐจ์ด์ ์ ์ ์ ์๊ณ ์ด๋์์ ์ ๋ด์ฉ์ ์ ์ ์์
2. ๊ณผ๊ฑฐ๋ก ๋์๊ฐ ์ ์์
1๋ฒ์ธ ์ฐจ์ด์ ์ ํ์ธํ๊ธฐ ์ํด์
git log -p

์์ธํ ํ๋ ์ฉ ํ์ธํด๋ณด๋ฉด
---๋ ์ด์ ๋ฒ์
+++๋ณ๊ฒฝ ๋ ๋ถ๋ถ
์๋ f1.txt์ ์ด๊ธฐ ๋ด์ฉ์ souce : 1 ์ด์์ง๋ง
souce : 2๋ก ๋ณ๊ฒฝ๋์๋ค. ๋ผ๋ ๊ฒ

์ปค๋ฐ์ ๊ฐ๊ฐ ๊ณ ์ ์ ๊ฐ(์ฃผ์)์ด ์กด์ฌํ๋ค.
์ด์ ์ด ์ปค๋ฐ ์์ด๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด์ ์ ์ปค๋ฐ๋ค์
ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์

git log [์ปค๋ฐ id]

๊ทธ๋ผ ์๋ฅผ๋ค์ด์
ํน์ ์ปค๋ฐ๊ณผ ์ปค๋ฐ ์ฌ์ด์ ์ฐจ์ด์ ์ ์๊ณ ์ถ์ผ๋ฉด ?

git diff [์ปค๋ฐ id]..[์ปค๋ฐid]

dc1๋ก ์์ํ๋ ์ปค๋ฐ๊ณผ dc8๋ก ์์ ํ๋ ์ปค๋ฐ์
๊ฐ๊ฐ์ ์์ค ์ฝ๋ ์ฌ์ด์ ์ฐจ์ด์ ์ ๋ณด์ฌ์ฃผ๋๋ฐ
diff์ ์ฅ์ ์
์์ ์ ํ ๋ ์ปค๋ฐํ๊ธฐ์ ์ ์๊ธฐ๊ฐ ์์ ํ ๋ด์ฉ์ด ๋ฌธ์ ๊ฐ ์๋์ง ์๋์ง๋ฅผ
๋ง์ง๋ง์ผ๋ก ๋ฆฌ๋ทฐํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํ๋ค.
๊ณผ๊ฑฐ๋ก ๋์๊ฐ๊ธฐ
ํ์ฌ์ ์ปค๋ฐ์ ์ทจ์ํ๊ณ ๊ณผ๊ฑฐ๋ก ๋์๊ฐ๊ณ ์ถ์ ๋
๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
1. reset
2. revert
์๋ฅผ๋ค์ด ์ปค๋ฐ๋ฉ์์ง๊ฐ 7๊ณผ 5์ธ ์ปค๋ฐ์ ์ญ์ ํ๊ณ 4๋ก ๋์๊ฐ๊ณ ์ถ๋ค.
๋ผ๊ณ ๊ฐ์ ํ ๋ reset์ ์ฌ์ฉํ๋ฉด๋๋ค.

git reset [๋์๊ฐ๊ณ ์ถ์ ์ฝ๋ id] --hard

https://www.inflearn.com/course/%EC%A7%80%EC%98%A5%EC%97%90%EC%84%9C-%EC%98%A8-git#reviews
[์ง๊ธ ๋ฌด๋ฃ] ์ง์ฅ์์ ์จ Git ๊ฐ์ | Egoing Lee - ์ธํ๋ฐ
Egoing Lee | ์ด ์์ ์์๋ ๋ช ๋ น์ด๋ฅผ ํตํด์ Git์ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค., [์๋ฒ ๋ฉ ์์] ์ง์ฅ์์ ์จ Git ์ด ์์ ์ Git์ ์ด์ฌ์์๊ฒ๋ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ ์ค๊ธ์๋ Git์ด ๋์ํ๋ ์๋ฆฌ๋ฅผ ์
www.inflearn.com
'GIT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๊นํ๋ธ Mergeํ ๋ Resolve Conflicts ๋ฒํผ์ด ๋นํ์ฑํ๋ผ์ ๋ฐ๋ก ์์ ๋ชปํ ๊ฒฝ์ฐ (0) | 2025.06.24 |
|---|---|
| Git ๋ฒ์ ๊ด๋ฆฌ - ํด๋ก (clone) (0) | 2023.10.17 |
| Git ๋ฒ์ ๊ด๋ฆฌ - ์ฌ๋ฌ ๊ฐ์ ๋ธ๋์น ํฉ์น๋ ๋ฐฉ๋ฒ(๋ฉํฐ ๋ธ๋์น) (1) | 2023.10.17 |
| Git ๋ฒ์ ๊ด๋ฆฌ - ํ์ ์ ํ์ํ branch ์๋ฏธ์ ๋ง๋ค๊ธฐ (0) | 2023.10.17 |
| Git ๋ฒ์ ๊ด๋ฆฌ - .gitignore (1) | 2023.10.17 |