์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก git์ ํตํด ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํด๋ณด๋๋ก ํ์.
init
ํด๋น ๋ช ๋ น์ด๋ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ๋ง๋๋ ๋ช ๋ น์ด๋ค.
git init
ํด๋น ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ํ์ฌ ์์นํ๊ณ ์๋ ๋๋ ํฐ๋ฆฌ๊ฐ ๊น์ผ๋ก ๊ด๋ฆฌํ๋ ๋ก์ปฌ ์ ์ฅ์๊ฐ ๋๋ค.
์์ ์ฌ์ง๊ณผ ๊ฐ์ด ls-al ์ ์ ๋ ฅํ์ ๋ .git ํด๋๊ฐ ์์ฑ๋๋ค๋ฉด ์ฑ๊ณต์ด๋ค. ๋๋ ํด๋น ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํ๋ฉด ์ฐ๋์์ผ๋ก master๊ฐ ํ์๋๋๋ฐ ๊ทธ๋ ๋ค๋ฉด ์ ์์ ์ผ๋ก init์ด ๋๋ค๋ ๋ป์ด๋ค.
status
ํด๋น ๋ช ๋ น์ด๋ ์์ ๋๋ ํฐ๋ฆฌ์ ์ํ๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด๋ค.
git status
์๋ฅผ ๋ค์ด, init์ ํ ๋๋ ํฐ๋ฆฌ์์ a.txt ํ์ผ์ ์์ฑํ ํ, git status๋ฅผ ์ ๋ ฅํด๋ณด์.
์์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ถ์ ํ์ง ์๋ ํ์ผ์ด๋ผ๊ณ ํด์ ์์ฑํ a.txt ํ์ผ์ด ๋์์ ํฌํจ๋์ด ์๋ค. ์์ ๊ธ์์ ์ค๋ช ํ๋ฏ์ด git์ commit ๋จ๊ณ๋ ์์ ๋๋ ํฐ๋ฆฌ → ์คํ ์ด์ง → ์ ์ฅ์ ๋ผ๊ณ ์ค๋ช ํ๋๋ฐ, ํ์ฌ ์์ ๋๋ ํฐ๋ฆฌ์ ๋ณ๊ฒฝ์ฌํญ์ด ์ผ์ด๋ฌ์ง๋ง ์คํ ์ด์ง์ ์ฌ๋ฆฌ์ง ์์๋ค๊ณ ์ดํดํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. (์คํ ์ด์ง์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์๋์ add ๋ช ๋ น์ด๋ฅผ ์ฐธ๊ณ )
์คํ ์ด์ง์ ์ถ๊ฐํ ๋ค, ๋ค์ status ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด๋ณด๋ฉด, ์ด๋ฒ์๋ ์ปค๋ฐํ ๋ณ๊ฒฝ ์ฌํญ์ a.txt๊ฐ ํฌํจ๋์ด ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ปค๋ฐํ ๋ณ๊ฒฝ ์ฌํญ = ์คํ ์ด์ง๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. (์ปค๋ฐํ๋ ๋ฐฉ๋ฒ์ ์๋์ commit ๋ช ๋ น์ด ์ฐธ๊ณ )
add
ํด๋น ๋ช ๋ น์ด๋ ์คํ ์ด์ง์ ์ถ๊ฐํ๋ ๋ช ๋ น์ด๋ค.
git add <์คํ
์ด์ง์ ์ถ๊ฐํ ๋์>
git add a.txt → a.txt ํ์ผ์ ์คํ ์ด์ง์ ์ถ๊ฐ
git add . → ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ์ ์คํ ์ด์ง์ ์ถ๊ฐ
commit
ํด๋น ๋ช ๋ น์ด๋ ๋จ์ด ๊ทธ๋๋ก ์คํ ์ด์ง์ ์๋ ํ์ผ๋ค์ ์ ์ฅ์์ ๋ฐ์ํ๋ ๋ช ๋ น์ด๋ค.
git commit
ํด๋น ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ์๋์ ์ฌ์ง๊ณผ ๊ฐ์ด vi ํ๋ฉด์ด ์ด๋ฆด ๊ฒ์ด๋ค. ํด๋น ํ๋ฉด์ "์ปค๋ฐ ๋ฉ์์ง" ๋ผ๋ ๊ฒ์ ์ ๋ ฅํ๋ ๊ฒ์ด๋ค. ๋ฌด์กฐ๊ฑด ์ ๋ ฅํด์ผ ํ๋ค. ์ค๋ช ์ด ๋์ด ์๋ฏ์ด ๋ฉ์์ง๋ฅผ ์ ๋ ฅํ์ง ์์ผ๋ฉด ์ปค๋ฐ์ด ์ค์ง๋๋ค.
์ปค๋ฐ ๋ฉ์์ง?
์ด๋ค ๋ณํ๊ฐ ๋ฐ์ ๋์๋์ง ์ค๋ช ํ๋ ๊ธ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ปค๋ฐ ๋ฉ์์ง๊ฐ ๊ต์ฅํ ์ค์ํ๋ค๊ณ ์๊ฐ๋๋๋ฐ, ์ด๋ค ์์ ์ ํ๋์ง๋ ๋๋ง ์๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋ด๊ฐ ์ด๋ค ๊ฒ๋ค์ ํ๋์ง ์ค๋ช ํ์ง ์์ผ๋ฉด ๋ชจ๋ฅธ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ปค๋ฐ ๋ฉ์์ง๋ ์์ธํ๊ฒ ์ ๋๊ฒ ์ข๋ค๊ณ ํ๋ค.
์์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ฒซ์ค์ ์ ๋ชฉ์ค์ด๊ณ ์ ๋ชฉ์ค ํ์นธ ๋๊ณ , ์์ธ ๋ด์ฉ์ ์ ๋ ฅํ๋ฉด ๋๋ค. ๊ธฐ๋ณธํ์ ์ด๋ ๊ณ ์์ผ๋ก ์ ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด ๋๊ฐํ ๋ฐ, ์ปค๋ฐ ๋ฉ์์ง์ ์ข์ ์ปจ๋ฒค์ ๋ค์ ๋ณด๋ฉฐ ์ด๋ค ์์ผ๋ก ์์ฑํ๋๊ฒ ์ข์์ง ๋์ ๋ ์ผ๋ ๊ฒ ๊ฐ๋ค.
์์ฑํ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ vi๊ธฐ ๋๋ฌธ์ ๋๊ฐ์ด insert ๋ชจ๋์์ esc๋ก ๋น ์ ธ๋์ค๊ณ :wq ํด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ ์์ ์ผ๋ก ์ปค๋ฐ ๋๋ค๋ ๋ฉ์์ง๊ฐ ๋ณด์ผ ๊ฒ์ด๋ค.
commit ๋ช ๋ น์ด ์ต์
git commit -m|--message "์ปค๋ฐ๋ฉ์์ง" //์์ธ๋ด์ฉ ์์ด ๊ฐ๋จํ ๋ฉ์์ง ์
๋ ฅ ํ ์ปค๋ฐ (vi ํธ์ง๊ธฐ ๊ฑด๋๋)
git commit --amend //์ต๊ทผ ์ปค๋ฐ ๋ฉ์์ง ์์ (vi ํธ์ง๊ธฐ ์ด๋ฆผ)
log
ํด๋น ๋ช ๋ น์ด๋ ์ปค๋ฐ ์ด๋ ฅ์ ์กฐํํ๋ ๋ช ๋ น์ด๋ค.
git log
๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ์๋์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ปค๋ฐ ์ด๋ ฅ์ด์กฐํ๋๋ค. ์ฌ์ง์ ๋ณด๋ฉด ๋ ธ๋ ๊ธ์จ๋ก 4a3c7256~~์ด ์๋๋ฐ, ํด๋น ๊ฐ์ ์ปค๋ฐ ํด์ (commit hash) ๋ผ๊ณ ํ๋ค. ์ปค๋ฐ ํด์๋ ์ปค๋ฐ๋ง๋ค ๊ณ ์ ํ id๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ์ปค๋ฐ ํด์ ์์ HEAD -> master ๋ ๋์ค์ ๋ธ๋์น ๊ด๋ จํ์ฌ ๊ฒ์๊ธ์ ์ฌ๋ฆด ๊ฑด๋ฐ, ํด๋น ๊ฒ์๊ธ์์ ์์ธํ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ๋ค. ๊ทธ ์๋์๋ vi๋ก ์์ฑํ๋ ์ปค๋ฐ ๋ฉ์์ง๊ฐ ๊ฐ์ด ์กฐํ๋๋ค.
log ๋ช ๋ น์ด ์ต์
git log --oneline //์ปค๋ฐ ์ด๋ ฅ์ ํ ์ค๋ก ์์ฝํ์ฌ ๋ณด์ฌ์ค๋ค.
git log -p|--patch //์ปค๋ฐ ์ด๋ ฅ๋ณ๋ก ๋ณ๊ฒฝ์ฌํญ์ ๊ฐ์ด ๋ณด์ฌ์ค๋ค.
git log --branches //๋ชจ๋ ๋ธ๋์น์ ์ปค๋ฐ ์ด๋ ฅ์ ์กฐํํ๋ค.
git log --graph. //์ปค๋ฐ ์ด๋ ฅ์ ๊ทธ๋ํ๋ก ์กฐํํ๋ค.
'๐๏ธ git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[git] 05 - ์ปค๋ฐ ๋๋๋ฆฌ๊ธฐ (revert, reset) (0) | 2023.03.23 |
---|---|
[git] 04 - ์ปค๋ฐ ๋น๊ต (diff) (0) | 2023.03.23 |
[git] 02 - ์์ ๋๋ ํฐ๋ฆฌ, ์คํ ์ด์ง, ์ ์ฅ์ (Working Directory, Stage, Repository) (0) | 2023.03.22 |
[git] 01 - git ์ค์น ๋ฐ ์ค์ (Mac OS) (0) | 2023.03.21 |
CLI ๋ช ๋ น์ด ์ ๋ฆฌ (0) | 2023.03.21 |