๐งฉGit
-๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ผ๋ก ์ปดํจํฐ ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ์ ์ถ์ฒํ๊ณ ์ฌ๋ฌ๋ช ์ ์ฌ์ฉ์๋ค ๊ฐ์ ํ์ผ์ ๋ํ ์์ ์ ์กฐ์จํ๋๋ฐ ์ฌ์ฉํ๋ค
=>์ฌ๋ฌ๋ช ์ ๊ฐ๋ฐ์๊ฐ ํ๋์ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ ํธ์ ์ฐธ์ฌํ ๋ ์์ค์ฝ๋ ๊ด๋ฆฌ ํ๋๋ฐ ์ฃผ๋ก์ฌ์ฉํ๋ค
-์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋์ง ์์ ๊ณณ์์๋ ๊ฐ๋ฐ์ ์งํ ํ ์ ์์ผ๋ฉฐ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ์ค์ ์ ์ฅ์๊ฐ ์ญ์ ๋์ด๋ ์์ ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅํ๋ค
=> ๊ฐ๊ฐ์ Branch ์์ ๊ฐ๋ฐํ ํฉ์น๋ merge ๋ฐฉ์์ ํตํ ๋ณ๋ ฌ ๊ฐ๋ฐ ๊ฐ๋ฅ
๐งฉGithub
-๊น์ ์ฌ์ฉํ๋ ์ธ ๋ก์ ํธ๋ฅผ ์ง์ํ๋ ์น ํธ์คํ ์๋น์ค
Git ์ค์น
Git์ ์ฌ์ฉํ๋ ค๋ฉด ์ฐ์ Git์ ์ค์นํด์ผ ํฉ๋๋ค. ๋ค์ ๋งํฌ์์ Git์ ๋ค์ด๋ก๋ํ์ฌ ์ค์นํ ์ ์๋ค
- Windows: https://git-scm.com/download/win
- Mac: https://git-scm.com/download/mac
- Linux: https://git-scm.com/download/linuxGit ์ ์ ์ด๋ฆ์ ํ
Git ๊ตฌ์กฐ
staging area
- commit์ ํ๊ธฐ ์ ์ commitํ ํ์ผ๋ค์ ๊ณจ๋ผ๋๋ ๊ณณ
- staging area์ ํ์ผ๋ฃ๋ ํ์๋ฅผ staging์ด๋ผ๋ถ๋ฅธ๋ค
- git add ๋ช ๋ น์ด๋ก staging ํ ์ ์๋ค
repository
- commit๋ ํ์ผ์ ๋ฒ์ ๋ค์ ๋ชจ์๋๋ ๊ณณ
- repository์ ์ค์ฒด๋ฅผ ๊ตฌ๊ฒฝํ๊ณ ์ถ์ผ๋ฉด ์์ ํด๋์์ ์จ๊ฒจ์ ธ ์๋ .git ํด๋ ์ด์ด๋ณด๋ฉด ๋๋ค
git config --global user.email "๋๋๋@naver.com"
git config --global user.name "๋กค๋กค๋กค"
Git ์ ์ฅ์ ์ด๊ธฐํ
-ํ์ผ์์ฑํ๋๊ฑฐ, ์ฝ๋์์ฑํ๋๊ฑธ ์ถ์ ํ๊ธฐ ์์
- local repository๊ฐ ์์ฑ
git init
๋ณ๊ฒฝ ๋ด์ฉ ์ถ์
- git add ํ์ผ๋ช
-staging area๋ก ์ฎ๊ธธ ๋ ์ฌ์ฉ - git commit -m '๋ฉ์ธ์ง ๊ธฐ๋ก'
-staging area์ ์๋ ๋ณ๊ฒฝ ๋ด์ฉ์ local reposiotry์ ์ ์ฅ - git add ํ์ผ๋ช
1 ํ์ผ๋ช
2
-์ฌ๋ฌํ์ผ ๋์์ ์คํ ์ด์ง - git add .
-์์ ํด๋์ ๋ชจ๋ ํ์ผ์ ์ ๋ถ ์คํ ์ด์ง - git status
-์ํ์ฐฝ ์ง๊ธ ๋ณ๊ฒฝ๋ ํ์ผ, ์คํ ์ด์ง๋ ํ์ผ ์๋ ค์ค - git commit --amend -m "์๋ก์ด ์ปค๋ฐ ๋ฉ์์ง"
-์ด๋ฏธ commitํ ๋ฉ์์ง๋ฅผ ์์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ - git log
-commit ๋ก๊ทธ๋ฅผ ํ์ธ
git branch
- git branch
-๋ก์ปฌ์ ์๋ ๋ธ๋์น ์กฐํ - git branch --all
-์๊ฒฉ ํฌํจ ์ ์ฒด ์กฐํ - git branch feature1
-์๋ก์ด ๋ธ๋์น์์ฑ - git branch feature1 feature2
-๋ธ๋์น ์ด๋ฆ ๋ณ๊ฒฝ - git branch feature1 origin/master
-origin/master๋ก๋ถํฐ ๋ธ๋์น ์์ฑ - git branch -d <๋ธ๋์น์ด๋ฆ>
-๋ธ๋์น ์ญ์ - git branch -D <๋ธ๋์น์ด๋ฆ>
-๋ณํฉํ์ง ์์ ๋ธ๋์น ์ญ์ ์ - git switch <๋ธ๋์น์ด๋ฆ>
-๋ธ๋์น ์ด๋
git merge
- git merge feature1
-ํ์ฌ ๋ธ๋์น์์ ๋ค๋ฅธ ๋ธ๋์น๋ฅผ mergeํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด - Merge Commit
-ํ๋์ ๋ธ๋์น์ ๋ค๋ฅธ ๋ธ๋์น์ ๋ณ๊ฒฝ ์ด๋ ฅ ์ ์ฒด๋ฅผ ํฉ์น๋ ๋ฐฉ๋ฒ
- Squash and Merge
-feature ๋ธ๋์น์ commit history๋ฅผ ํฉ์ณ์ ๊น๋ํ๊ฒ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉ
- Rebase and Merge
-๋ชจ๋ commit๋ค์ด ํฉ์ณ์ง์ง ์๊ณ ๊ฐ๊ฐ master ๋ธ๋์น์ ์ถ๊ฐ๋๋ค=>๊ฐ commit์ ๋ชจ๋ ํ๋์ parent๋ฅผ ๊ฐ์ง๋ค.
=>๊ธฐ๋ก์ด ๋จ์ง ์์ ๋ง์น ํ๋์ ๋ธ๋์น์์ ์์ ํ ๊ฒ์ฒ๋ผ ๋ณด์ฌ์ง๋ค.
merge ํ ์ง ํ๋จํ๊ธฐํ์ฌ๋ง๋ค ๊ฐ์ด๋๋ผ์ธ์ด ์์ด์ ๊ณ ๋ฏผํ ํ์ ์๋ค ๊ทธ๋ฐ๊ฑฐ ์์ผ๋ฉด ํด์ฌ
ํ์ผ๋จ์ ์ ์ด
- git restore <file name>
-ํน์ ํ์ผ์ Head Commit์ผ๋ก ๋ณต๊ตฌ - git restore --source ์ปค๋ฐ์์ด๋ ํ์ผ๋ช
<file name>
-ํ์ผ์ด ํน์ ์ปค๋ฐ์์ด๋ ์์ ์ผ๋ก ๋ณต๊ตฌ - git restore
-ํน์ ํ์ผ์ staging ์ทจ์ํ ์ ์๋ค
commit ์ ์ด
revert
-ํ์ฌ์ ์์ผ๋ฉด์ ๊ณผ๊ฑฐ์ ํน์ ์ฌ๊ฑด(commit)๋ค๋ง ์๋ ์ผ๋ก ๋ง๋ ๋ค.
reset
-์๊ฐ์ ์์ ๊ณผ๊ฑฐ ํน์ ์ฌ๊ฑด(commit)์ผ๋ก ๋๋๋ฆฐ๋ค
-ํ์ ์์ ์ฌ์ฉ๊ธ์ง
- -git revert <commit ID>
-๋์๊ฐ๊ณ ์ ํ๋ commit ID๋ฅผ ์ ์ด์ค๋ค,์ฌ๋ฌ๊ฐ ์ ๋ ฅ๊ฐ๋ฅ - git reset --soft <commit ID>
- commit๋ ํ์ผ๋ค์ staging area๋ก ๋๋ ค๋์. =>commit ํ๊ธฐ ์ ์ํ๋ก - git reset --mixed [commit ID]
-commit๋ ํ์ผ๋ค์ working directory๋ก ๋๋ ค๋์. =>add ํ๊ธฐ ์ ์ํ๋ก - git reset --hard [commit ID]
-commit๋ ํ์ผ๋ค ์ค tracked ํ์ผ๋ค์ working directory์์ ์ญ์ ํ๋ค. =>Untracked ํ์ผ์ ์ฌ์ ํ Untracked๋ก ๋จ๋๋ค. - git reset HEAD~10
-ํ์ฌ๋ก๋ถํฐ ์ํ๋ ๋งํผ์ ์ปค๋ฐ์ด ์ทจ์๋๋ค. - git reset HEAD^
-๊ฐ์ฅ ์ต๊ทผ์ ์ปค๋ฐ์ด ์ทจ์๋๋ค. (๊ธฐ๋ณธ์ต์ mixed)
git push
-๋ก์ปฌ ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์ํ๊ธฐ
- git push <remote> <branch>
- git push -u origin my-feature
-์ต์ด์ ํ ๋ฒ๋ง ์ ์ฅ์๋ช ๊ณผ ๋ธ๋์น๋ช ์ ์ ๋ ฅํ๊ณ ๊ทธ ์ดํ์๋ ๋ชจ๋ ์ธ์๋ฅผ ์๋ตํ ์ ์๋ค
=>์ธ์์์ด git push ๋ช ๋ น์ด๋ง ๋ ๋ฆฌ๋ฉด ๋๋ค - git push -f origin my-feature
-์๊ฒฉ ์ ์ฅ์ ๋ด์ ํด๋น ๋ธ๋์น์ ์ฝ๋ ๋ณ๊ฒฝ ์ด๋ ฅ์ ๋ก์ปฌ ์ ์ฅ์์ ์ฝ๋ ๋ณ๊ฒฝ ์ด๋ ฅ์ผ๋ก ๋ฎ์ด์์ด ์ค๋ค
git clone
-์๋ฒ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ ์ปดํจํฐ๋ก ๋ณต์ฌ
git pull(git fetch + git merge ์ถ์ฝ์ด)
- ์๊ฒฉ์ ์ฅ์์ ์๋ ๋ชจ๋ ๋ธ๋์น ๋ด์ฉ์ ๊ฐ์ ธ์์ ๋ก์ปฌ์ ์ฅ์์ ํฉ์น๋ผ๋ ๋ป
git status
-์ ์ฅ์ ์ํ ์ฒดํฌ,์ด๋ฐํ์ผ์ด ์ ์ฅ์ ์์ ์๋์ง, ์ปค๋ฐ์ด ํ์ํ ๋ณ๊ฒฝ์ฌํญ์ด ์๋์ง,ํ์ฌ ์ ์ฅ์์ ์ด๋ค ๋ธ๋์น์์ ์์ ํ๊ณ ์๋์ง
git stash
-์์ง ๋ง๋ฌด๋ฆฌํ์ง ์์ ์์
์ ์คํ์ ์ ์ ์ ์ฅํ ์ ์๋๋ก ํ๋ ๋ช
๋ น์ด
- git stash apply&gpop
-๊ฐ์ฅ ์ต๊ทผ์ stash๋ฅผ ๊ฐ์ ธ์ ์ ์ฉํ๋ค - git stash list
-stash ๋ชฉ๋ก ํ์ธ - git stash apply [stash ์ด๋ฆ]
-์ด๋ฆ์ ํด๋นํ๋ stash ์ ์ฉ - git stash drop
-๊ฐ์ฅ ์ต๊ทผ์ stash ์ ๊ฑฐ
'Git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
git cherry-pick (๋ถ๋ถ๋ณํฉ) (6) | 2023.03.21 |
---|---|
git pull Already up to date (6) | 2023.03.16 |