๐ Git
- ์์ค ์ฝ๋์ ๋ฒ์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ
- ์ฌ๋ฌ ๊ฐ๋ฐ์์์ ํ์ ๊ฐ๋ฅ
- GitHub, GitLab์ Git ๊ธฐ๋ฐ์ ์ ์ฅ์ ์๋น์ค
์ ์ฅ์์ ํ๋ก์ ํธ๋ฅผ Local ์ ์ฅ์๋ก ๋ณต์
1
git clone <url>
๋ด ์ปดํจํฐ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด ์์ํ๋ ๊ฒฝ์ฐ
1
2
3
4
5
cd ./๋๋ ํ ๋ฆฌ
git init
# ์ ์ฅ์์ ๋ด์ฉ์ ๊ฐ์ ธ์จ๋ค
git remote add <์ ์ฅ์> <url>
git ์ ์ฅ์๋ง๋ค ๋ค๋ฅธ ๊ณ์ ์ผ๋ก ์ค์ ๊ฐ๋ฅ
1
2
git config user.name "name"
git config user.email "@"
git commit log ํ์ธ
1
git log
git log ๋ช ๋ น์ด๋ฅผ ํตํด commit id ํ์ธ ๊ฐ๋ฅ
์ ์ฒด commit log ํ์ธ
1
git log --all --graph
HEAD๊ฐ ๊ฐ๋ฆฌ์ผฐ๋ ์ปค๋ฐ ๊ธฐ๋ก์ ๋ชจ๋ ํ์ธ
1
git reflog
reference log ์ซ์๊ฐ ๋ฎ์์๋ก ์ต๊ทผ๊ธฐ๋ก
git commit ๋ด์ฉ ๋น๊ต
1
git diff <commit_id> <commit_id>
commit id๋ฅผ ๋ค ์ ์ง ์๊ณ ๊ตฌ๋ถ ๊ฐ๋ฅํ ์ ๋๋ง ์ ์ด์ฃผ์ด๋ ๋๋ค.
์ํ๋ commit ์์ ์ผ๋ก ๋ณ๊ฒฝ
1
git reset --option <commit_id>
๐ ์ต์
- โhard : Working Directory ๋ด์ฉ ๋ณ๊ฒฝ
- โmixed : Working Directory ๋ณ๊ฒฝํ์ง ์๊ณ Staging Area๋ฅผ ํด๋น ์ปค๋ฐ์ฒ๋ผ ๋ณ๊ฒฝ
- โsoft : Working Directory, Staging Area ๋ณ๊ฒฝํ์ง ์๊ณ HEAD๊ฐ ๊ฐ๋ฆฌํค๋ ์ปค๋ฐ๋ง ๋ณ๊ฒฝ
git์ ํ์ฌ์ํ
1
git status
git branch ์์ฑ
1
git branch <branch_name>
git branch ๋ณ๊ฒฝ
1
git checkout <branch_name>
HEAD๊ฐ ๊ฐ๋ฆฌํค๋ branch์ target_branch ๋ณํฉ
1
git merge <target_branch_name>
merge ๊ณผ์ ์์ ์ถฉ๋์ด ๋ฐ์ํ ๊ฒฝ์ฐ, ์ถฉ๋์ด ๋ฐ์ํ ํ์ผ์ ์ง์ ์์ ํ๊ณ add์ commit ์งํ
์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ ์ฌํญ ์ ๋ก๋
1
git push -u origin master
๐ ์ต์
- -u ์ต์ : โset-upstream : ๋ด ์ปดํจํฐ์ master ๋ธ๋์น๊ฐ ์ ์ฅ์ ์๋ฒ์ master ๋ธ๋์น๋ฅผ ๊ฐ๋ฅดํค๋๋ก
- -u ์ต์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ค์ ์ ์ฅ์์ branch๋ฅผ ๋ช ์ํ์ง ์์๋ ๋๋ค.
- โforce : ๊ฐ์ ์ ๋ก๋
fork
- ์๋ณธ ํ๋ก์ ํธ์ ๋์ผํ ๋ณต์ ํ๋ก์ ํธ ๋ง๋ค๊ธฐ
- ๋ณต์ ํ๋ก์ ํธ๋ก ์์ ํ ์๋ณธ ํ๋ก์ ํธ๋ก merge request ๋ณด๋ด๊ธฐ