1. ์ผ๋ฐ ํ์ ๊ด๋ฆฌํด๊ณผ ์ฐจ์ด์
2. ๊ธฐ๋ณธ ๋ช
๋ น์ด ํ์ธ
3. conflict ์์ ์์ฑ/ํด๊ฒฐ/์ ๋ฆฌ
4. ํ์คํ ๋ฆฌ ๋ณด๋ ๋ฒ
5. git ๊ณ ๊ธ ๊ธฐ๋ฅ 3๊ฐ์ง
6. merge request ๊ธฐ๋ฅ ํ์ธ
7. issue ๊ธฐ๋ฅ ํ์ธ
SVN : ์ค์ ์๋ฒ์ ์์ค์ฝ๋์ ํ์คํ ๋ฆฌ๋ฅผ ์ ์ฅ
Git : ์์ค์ฝ๋๋ฅผ ์ฌ๋ฌ ๊ฐ๋ฐ PC์ ์ ์ฅ์์ ๋ถ์ฐํด์ ์ ์ฅํ๋ค.
Git์ ๋ถ์ฐํ ๊ด๋ฆฌ ์์คํ
์ด๋ค.
์ค์ ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ๋ก์ปฌ ์ ์ฅ์์ ์ปค๋ฐ์ ํ ์ ์์ผ๋ฉฐ,
๋ก์ปฌ ์ ์ฅ์๋ค์ ์ด์ฉํ์ฌ ์ค์ ์ ์ฅ์์ ๋ณต์๋ ๊ฐ๋ฅํ๋ค.
SVN๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๋ค.
๋ํ, ์์ค์ฝ๋๋ฅผ ์ฃผ๊ณ ๋ฐ์ ํ์ ์์ด, ๊ฐ์ ํ์ผ์ ์ฌ๋ฌ ๋ช
์ด ๋์์
์์
ํ๋ ๋ณ๋ ฌ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค.
๋ธ๋์น๋ฅผ ํตํด ๊ฐ๋ฐํ ๋ค,
๋ณธ ํ๋ก๊ทธ๋จ์ ํฉ์น๋ ๋ฐฉ์(Merge)์ผ๋ก ๊ฐ๋ฐ์ ์งํํ ์ ์๋ค.
๋ช ๋ น์ด | ์๋ฏธ |
---|---|
git --version | ํ์ฌ git ๋ฒ์ ํ์ธ |
mkdir /path/newDir cd /path/newDir git init | ์๋ก์ด ์ ์ฅ์ ์ด๊ธฐํ ํ๊ธฐ |
git config --global user.name "hoseong-lee" git config --global user.email "ghtdjd2@naver.com" | ์ ์ญ ์ฌ์ฉ์๋ช /์ด๋ฉ์ผ ๊ตฌ์ฑํ๊ธฐ |
git config --global --list | ์ ์ญ ์ค์ ์ ๋ณด ์กฐํ |
git config --list | ์ ์ฅ์๋ณ ์ค์ ์ ๋ณด ์กฐํ |
git status | ํ์ผ ์ํ ํ์ธํ๊ธฐ (์ปค๋ฐ๋์ง ์์ ๋ณ๊ฒฝ์ฌํญ ์กฐํ) |
๋ช ๋ น์ด | ์๋ฏธ |
---|---|
git add ํ์ผ๋ช
git commit-m"<๋ฉ์์ง>" | ์๋ก์ด ํ์ผ์ ์ถ๊ฐํ๊ฑฐ๋ ์กด์ฌํ๋ ํ์ผ ์คํ ์ด์งํ๊ณ ์ปค๋ฐํ๊ธฐ |
git add-p[<ํ์ผ> [<ํ์ผ>[๊ธฐํ ํ์ผ๋ค...]]] | ํ์ผ์ ์ผ๋ถ๋ฅผ ์คํ ์ด์งํ๊ธฐ |
git add -i | add ๋ช ๋ น์์ Git ๋ํ ๋ชจ๋๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ์ถ๊ฐํ๊ธฐ |
git add-u [<๊ฒฝ๋ก>[<๊ฒฝ๋ก>]] | ์์ ๋๊ณ ์ถ์ ๋๋ ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ ์คํ ์ด์งํ๊ธฐ |
git commit -m"<๋ฉ์์ง>"-a | ์์ ๋๊ณ ์ถ์ ๋๋ ๋ชจ๋ ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ ์ปค๋ฐํ๊ธฐ |
git checkout HEAD <ํ์ผ> [<ํ์ผ>] | ์์ ํธ๋ฆฌ์ ๋ณ๊ฒฝ์ฌํญ ๋๋ ค๋๊ธฐ |
git reset HEAD <ํ์ผ> [<ํ์ผ>] | ์ปค๋ฐ๋์ง ์๊ณ ์คํ ์ด์ง๋ ๋ณ๊ฒฝ์ฌํญ ์ฌ์ค์ ํ๊ธฐ |
git commig -m "<๋ฉ์์ง>" --amend | ๋ง์ง๋ง ์ปค๋ฐ ๊ณ ์น๊ธฐ |
git commit -C HEAD --amend | ์ด์ ์ปค๋ฐ์ ์์ ํ๊ณ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ |
git add README | ํ์ผ ์๋ก ์ถ์ ํ๊ธฐ |
๋ช ๋ น์ด | ์๋ฏธ |
---|---|
git branch | ์ง์ญ ๋ธ๋์น ๋ชฉ๋ก ๋ณด๊ธฐ |
git branch -r | ์๊ฒฉ ๋ธ๋์น ๋ชฉ๋ก ๋ณด๊ธฐ |
git branch -a | ์ง์ญ๊ณผ ์๊ฒฉ์ ํฌํจํ ๋ชจ๋ ๋ธ๋์น ๋ชฉ๋ก ๋ณด๊ธฐ |
git branch <์๋ก์ด ๋ธ๋์น> | ํ์ฌ ๋ธ๋์น์์ ์๋ก์ด ๋ธ๋์น ์์ฑํ๊ธฐ |
checkout <๋ธ๋์น> | ๋ค๋ฅธ ๋ธ๋์น ์ฒดํฌ์์ํ๊ธฐ |
git checkout -b <์๋ก์ด ๋ธ๋์น> | ํ์ฌ ๋ธ๋์น์์ ์๋ก์ด ๋ธ๋์น ์์ฑํ๊ณ ์ฒดํฌ์์ํ๊ธฐ |
git branch <์๋ก์ด ๋ธ๋์น> <๋ธ๋์น๋ฅผ ์์ฑํ ์์น> | ๋ค๋ฅธ ์์ ์ง์ ์์ ๋ธ๋์น ์์ฑํ๊ธฐ |
git branch -f <๊ธฐ์กด ๋ธ๋์น> [<๋ธ๋์น๋ฅผ ์์ฑํ ์์น>] | ๊ธฐ์กด์ ๋ธ๋์น๋ฅผ ์๋ก์ด ๋ธ๋์น๋ก ๋ฎ์ด์ฐ๊ธฐ |
[๋ธ๋์น๋ฅผ ์ฎ๊ธฐ๊ฑฐ๋ ๋ธ๋์น๋ช ์์ฑํ๊ธฐ] | |
git checkout -m <๊ธฐ์กด ๋ธ๋์น> <์๋ก์ด ๋ธ๋์น> | <์๋ก์ด ๋ธ๋์น>๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ |
git checkout -M <๊ธฐ์กด ๋ธ๋์น> <์๋ก์ด ๋ธ๋์น> | <์๋ก์ด ๋ธ๋์น>๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ |
git merge <๋ธ๋์น> | ๋ค๋ฅธ ๋ธ๋์น๋ฅผ ํ์ฌ ๋ธ๋์น๋ก ํฉ์น๊ธฐ |
git merge --no-commit <๋ธ๋์น> | ์ปค๋ฐํ์ง ์๊ณ ํฉ์น๊ธฐ |
git cherry-pick <์ปค๋ฐ๋ช > | ์ ํํ์ฌ ํฉ์น๊ธฐ |
git cherry-pick -n <์ปค๋ฐ๋ช > | ์ปค๋ฐํ์ง ์๊ณ ์ ํํ์ฌ ํฉ์น๊ธฐ |
git merget --squash <๋ธ๋์น> | ๋ธ๋์น์ ์ด๋ ฅ์ ๋ค๋ฅธ ๋ธ๋์น์ ํฉ์น๊ธฐ |
[๋ธ๋์น ์ญ์ ํ๊ธฐ] | |
git branch -d <์ญ์ ํ ๋ธ๋์น> | ์ญ์ ํ ๋ธ๋์น๊ฐ ํ์ฌ ๋ธ๋์น์ ํฉ์ณ์ก์ ๊ฒฝ์ฐ์๋ง |
git branch -D <์ญ์ ํ ๋ธ๋์น> | ์ญ์ ํ ๋ธ๋์น๊ฐ ํ์ฌ ๋ธ๋์น์ ํฉ์ณ์ง์ง ์์์ด๋ |
conflict(์ถฉ๋)๋ merge๋ฅผ ํ ๋ ๋ํ๋๋ ์ถฉ๋ํ์.
๊ฐ์ ํ์ผ์ ๊ฐ์ ๋ถ๋ถ์ ๊ฐ๊ฐ์ branch์์ ์์ ํ๊ณ mergeํ๊ฒ ๋๋ฉด ์ถฉ๋์ด ์ผ์ด๋๋ค.
git status ๋ช ๋ น์ ํตํด์ conflict๋ ํ์ผ์ ํ์ธํ๊ณ ํ์ผ์ ์ด์ด ์์ ํ๋ค.
'<<<<<<< HEAD' ๋ถํฐ
'=======' ์ฌ์ด์ ๊ตฌ๊ฐ์ด ํ์ฌ ์ฒดํฌ์์๋ ํ์ผ์ ๋ด์ฉ์ด๊ณ
(master ๋ธ๋์น์ ์์ค์ฝ๋)
'>>>>>>> hoseong1' ์ฌ์ด์ ๊ตฌ๊ฐ์ด ๋ณํฉํ๋ ค๋ ๋์์ธ hoseong1 ๋ธ๋์น์ ์์ค์ฝ๋์ด๋ค.
์ด ์ ๋ณด๋ฅผ ์ฐธ๊ณ ํด์ ๋ ๊ฐ์ ์ฝ๋๋ฅผ ๋ณํฉํ ํ ํน์๊ธฐํธ๋ค์ ์ ๊ฑฐํ๋ฉด ๋๋ค.
์์
์ด ๋๋๋ฉด ํ์ผ์ ์ ์ฅํ๋ค.
ํน๋ณํ ์๊ท๋จผํธ ์์ด git log ๋ช
๋ น ์คํ ์
์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ์๊ฐ์์ผ๋ก ๋ณด์ฌ์ค๋ค.
๊ฐ์ฅ ์ต๊ทผ์ ์ปค๋ฐ์ด ๊ฐ์ฅ ๋จผ์ ๋์จ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ด์ ๊ฐ ์ปค๋ฐ์ SHA-1 ์ฒดํฌ์ฌ,
์ ์ ์ด๋ฆ, ์ ์ ์ด๋ฉ์ผ, ์ปค๋ฐํ ๋ ์ง, ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ค๋ค.
git tag
git commit --amend
git revert
git reset
git checkout HEAD --filename
git rabse
git rebase -i
develop branch์ ๊ฐ๋ฐ๋ ์ฌํญ์ master ์ merge ํ๊ธฐ ์ํด์๋ ๊ฐ๋ฐ์์
merge request ์ ๊ด๋ฆฌ์์ ์น์ธ์ด ํ์ํ๋ค.
git repository ์ข์ธก ๋ฉ๋ด - merge requests ๋ฒํผ ํด๋ฆญ
new merge request ํด๋ฆญ
source branch ์๋ ์์ ์ด mergeํ๋ ค๋ repository์ branch(develop) ์ ํ
target branch merge ๋์์ repository branch(master) ์ ํํ์ฌ
Compare branches and continue ๋ฒํผ ํด๋ฆญ
Issue ๋?
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ฐ์ํ๋ ๋ชจ๋ ์ด์๋ฅผ ๋ปํ๋ค. (๋ฒ๊ทธ ๋ฐ์, ๊ฐ๋ฐ, ํ ๋ฆฌํ์คํธ ๋ฑ..)
Issue ์์ฑํ๊ธฐ
์ด์๋ ์ ์ ์ ์ด์ ์ฌ์ฉ์ด ํ์ฉ๋ ๊นํ ๋ ํฌ์งํ ๋ฆฌ์์ ์์ฑํ ์ ์๋ค. (์ด์๋ฅผ ์ฌ์ฉ ์ํ๋๋ก ์ค์ ํ ์๋ ์๋ค.)
์ด์๋ ํ์ฌ ์กด์ฌํ๋ ํ ๋ฆฌํ์คํธ์ ์ฝ๋๋ก๋ ์์ฑํ ์ ์๋ค.
ํ๋ฆฌํ์คํธ๋ฅผ ํ๊ณ ์๋ ํ์ผ์ View File์ ํ ํ ์ฝ๋๋ฅผ ์ ํํด์ ์ด์๋ฅผ ์์ฑํ ์ ์๋ค.
๋ํ, ํ๋์ ์ด์ ๋๋ ํ ๋ฆฌํ์คํธ์ ๋ฆฌ๋ทฐ์ ์๋ ์ฝ๋ฉํธ๋ก๋ถํฐ๋ ๋ฐ๋ก ์ด์๋ฅผ ์์ฑํ ์ ์๋ค.
๋ง์ฝ ์
๋ฌด์ ์ฐ์ ์์์ ์ถ์ ์ ์ํด ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด,
ํ๋ก์ ํธ ๋ณด๋ ๋
ธํธ๋ฅผ ์ด์๋ก ๋ฐ๊ฟ ์๋ ์๋ค.
๋๊ตฌ๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋ Git ์
๋ฌธ
https://backlog.com/git-tutorial/kr/stepup/stepup2_2.html
Git ์ฌ์ฉ๋ฒ
https://www.zerocho.com/category/Git/post/581042fdcae2d100152ceae6