Git : ์ปดํจํฐ ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ์ ์ถ์ ํ๊ณ ์ฌ๋ฌ ๋ช ์ ์ฌ์ฉ์๋ค ๊ฐ์ ํด๋น ํ์ผ๋ค์ ์์ ์ ์กฐ์จํ๊ธฐ ์ํ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๋ค
git status
ํ์ผ์ ์ํ ํ์ธํ๊ธฐ
git log
git ํ์คํ ๋ฆฌ ์กฐํํ๊ธฐ
option
--hard [commit log๋ฒํธ]
: ๋์๊ฐ๋ ค๋ ์ด๋ ฅ์ดํ์ ๋ชจ๋ ๋ด์ฉ์ ์ง์ ๋ฒ๋ฆฐ๋ค.--soft [commit log๋ฒํธ]
: ๋์๊ฐ๋ ค ํ๋ ์ด๋ ฅ์ผ๋ก ๋๋์ ๊ฐ์ง๋ง ๋ค์ ์ปค๋ฐํ ์ ์๋ ์ํ๋ก ๋จ์์๋ค(stage์ ๋จ์์๋ค)--mixed
(๊ธฐ๋ณธ) : ์ดํ์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ํด์๋ ๋จ์์์ง๋ง, ์ธ๋ฑ์ค๋ ์ด๊ธฐํ๋๋คgit revert [commit log๋ฒํธ]
: commit์ ์ ์งํ๋ฉด์ ๋ด์ฉ์ ๋ณต๊ตฌํ๋คgit branch
๋ก์ปฌ branch ๋ณด๊ธฐ
git branch -a
๋ก์ปฌ/์๊ฒฉ branch ๋ณด๊ธฐ
git branch [branch]
branch ๋ง๋ค๊ธฐ
git checkout [branch]
branch๋ก ๋ค์ด๊ฐ๊ธฐ
git checkout -b [branch]
branch ๋ณํฉ
git checkout -d [new branch] [์๊ฒฉ๋ช
/ํด๋น branch]
์ branch์ ํด๋น branch ์ ์ฉ
git merge [branch]
git log --graph --all --decorate
์๊ฐํ๋ ์์
๋ด์ญ
git rebase
branch ์ฌ๋ฐฐ์น
git branch -D [branch]
branch ์ง์ฐ๊ธฐ
git config -- global user.name '์ฌ์ฉ์ ์ด๋ฆ'
์ฌ์ฉ์ ์ด๋ฆ ๋ฑ๋ก
git config -- global user.email '์ฌ์ฉ์ email'
์ฌ์ฉ์ email ๋ฑ๋ก
git config --global -e
์๋ํฐ ๋ฑ๋ก
git config --global alias.[๋ณ๊ฒฝ ๋ช
๋ น์ด] [๊ธฐ์กด ๋ช
๋ น์ด]
๋ช
๋ น์ด ๋ณ๊ฒฝ
git config --h
์ ๋ณด ํ์ธ
git clone [url]
์ ์ฅ์ clone
git fetch
๊น ๋ณ๊ฒฝ์ฌํญ
git pull [์๊ฒฉ๋ช
] [branch]
git push [์๊ฒฉ๋ช
] [branch]
git push -d [์๊ฒฉ๋ช
] [branch]
์๊ฒฉ์ branch ์ญ์
git diff
ํ์ผ ๋น๊ตํ๊ธฐ,์์ ๋ด์ฉ
git diff --staged
Staging Area์ ๋ฃ์ ํ์ผ ๋น๊ต
Working Directory : ์ฝ๊ฒ ์๊ฐํ๋ Tree
Index : ๋ฐ๋ก ๋ค์์ ์ปค๋ฐํ ๊ฒ
HEAD : ํ์ฌ ๋ธ๋์น๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ
1. v1
2. v2
1. v1
2. v2
git history
1. HEAD ์ด๋
git reset 9e5e6a4
2. Index ์
๋ฐ์ดํธ
3. working directory ์
๋ฐ์ดํธ
๊ฒฝ๋ก๋ฅผ ์ฃผ๊ณ Reset ํ๊ธฐ
file.text๋ฅผ Stage์์ ์ ๊ฑฐํ๋ค
git add file.txt
๊ณผ ๋ฐ๋๋๋ ๋ช
๋ น์ด
ํน์ ์ปค๋ฐ์ ๋ช
์ํ๋ฉด Git์ โ`HEAD์์ ํ์ผ์ ๊ฐ์ ธ์ค๋โ ๊ฒ์ด ์๋๋ผ ๊ทธ ์ปค๋ฐ์์ ํ์ผ์ ๊ฐ์ ธ์จ๋ค.
ํฉ์น๊ธฐ(Squash)
์ฌ๋ฌ commit์ ํ๋๋ก ํฉ์น๊ธฐ
git history
git reset --soft HEAD~2
๋ช
๋ น์ ์คํํ์ฌ HEAD ํฌ์ธํฐ๋ฅผ ์ด์ ์ปค๋ฐ์ผ๋ก ๋๋๋ฆด ์ ์๋ค
git commit
git checkout [branch]
๊ฒฝ๋ก ์์
reset --hard
๋ช
๋ น๊ณผ๋ ๋ฌ๋ฆฌ git checkout
๋ช
๋ น์ ์ํน ๋๋ ํ ๋ฆฌ๋ฅผ ์์ ํ๊ฒ ๋ค๋ฃฌ๋คreset
๋ช
๋ น์ HEAD๊ฐ ๊ฐ๋ฆฌํค๋ branch๋ฅผ ์์ง์ด์ง๋ง checkout
๋ช
๋ น์ HEAD ์์ฒด๋ฅผ ๋ค๋ฅธ branch๋ก ์ฎ๊ธด๋ค๊ฒฝ๋ก ์์
git reset --hard [branch] file
์ ๊ฐ๋ค
HEAD | INDEX | Working directory | WD safe? | |
---|---|---|---|---|
commit Level | ||||
reset --soft [commit] | REF | โ | โ | โญ |
reset [commit] | REF | โญ | โ | โญ |
reset --hard [commit] | REF | โญ | โญ | โ |
checkout [commit] | HEAD | โญ | โญ | โญ |
File Level | ||||
reset [commit] | โ | โญ | โ | โญ |
checkout [commit] | โ | โญ | โญ | โ |