๐ ํ๊ณ
์ด์ ์์ ์ ๋ง์น๊ณ ์ปค๋ฆฌ์ด ํ ํฌ ์๊ฐ์ ๊ฐ์ง๊ฒ ๋์๋๋ฐ ์ด๋ ๋ธ๋ก๊น ์ ๋ํด ๊น์ด ๊ณ ๋ฏผํด๋ณผ ์ ์์๋ค. ๊ฒฐ๋ก ์ ๊ณต๋ถํ ๋ด์ฉ์ ๋๋ฌด ์์ธํ๊ฒ ์ ๋ก๋ํ๋ ๊ฒ์ ๋นํจ์จ์ ์ด๊ณ ๊ธฐ์ ์ ์ธ ๋ด์ฉ์ ์คํ ์ค๋ฒํ๋ก์ฐ ๋ฑ์ ์ฌ์ดํธ๋ค๋งํผ ์ ๋ฌธ์ ์ธ ๊ธ์ ์์ฑํ๊ธฐ๋ ์ฝ์ง ์๋ค. ๊ทธ๋์ ์๋ก ์๊ฒ ๋ ๋ด์ฉ๊ณผ ๋ด ์๊ฐ์ ์ค์ฌ์ผ๋ก ๊ฐ๋จํ๊ฒ ์์ฑํด๋ณด๋ ค๊ณ ํ๋ค.
์ด์ ๊น์ง๋ ๊นํ๋ธ ๊ธฐ๋ก์ ์ํ Git๋ง ์๊ณ ์์๊ณ ํ์ ์ ์ํ Git์ ์ ๋ชจ๋ฅด๊ณ ์์๋ค. ์ค๋ Pull Request, Merge Confilct, ๋ค๋ฅธ ์ฌ๋์ ๋ ํฌ์งํ ๋ฆฌ์ ์ฐ๊ฒฐํด ํ์ ํ๋ ๋ฐฉ๋ฒ ๋ฑ ์๋ก์ด ๊ฒ๋ค์ ๋ง์ด ๋ฐฐ์ธ์ ์์ด์ ์ข์๋ค.
๐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ - Git
Git
- ์์ค ์ฝ๋ ๊ธฐ๋ก์ ๊ด๋ฆฌํ๊ณ ์ถ์ ํ ์ ์๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
- ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ ์ถ์ , ๊ฐ ํ์ผ์ ๋ฒ์ ๊ด๋ฆฌ, ํ์ผ ๋ฐฑ์ , ํ์ ์๋ค๊ณผ ํ์ผ ๊ณต์ , ๊ฐ์ ์์ ๋ฌผ ์ทจํฉ์ ๋์์ค๋ค.
Github: Git Repository๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋น์ค
๐ ์ฉ์ด ์ ๋ฆฌ
Staging area: Commit ํ๊ธฐ ์ ๋ด์ฉ์ ๊ธฐ๋กํ๋ ์ฅ์
Local Repository: ๋ก์ปฌ ์ ์ฅ์
- Untracked area: Git์ด ๊ด๋ฆฌํ๊ณ ์์ง ์์ ์์ญ
- Tracked area: Git์ด ๊ด๋ฆฌํ๊ณ ์๋ ์์ญ
- Unmodified: ๊ธฐ์กด์ Commit ํ๋ ํ์ผ์ ์์ ํ์ง ์์ ์ํ
- Modified: ๊ธฐ์กด์ Commit ํ๋ ํ์ผ์ ์์ ํ ์ํ
- Staged: Commit์ด ๊ฐ๋ฅํ ์ํ
Remote Repository: ์๊ฒฉ ์ ์ฅ์
Merge Conflict: ๋ณํฉ ์ถฉ๋
- Accept Current Change: ๋ด๊ฐ ์์ ํ ๋ด์ฉ์ผ๋ก ํ์ผ ๋ฐ์
- Accept Incoming Change: Remote Repository์ ๋ด์ฉ์ผ๋ก ํ์ผ ๋ฐ์
- Accpet Both Changes: ๋ณ๊ฒฝ์ฌํญ์ ๋ชจ๋ ๋ฐ์
๐ป ๋ช ๋ น์ด ์ ๋ฆฌ
git config --global user.name "๋์ ์ฌ์ฉ์ ์ด๋ฆ"
git config --global user.email "๋ด ์ด๋ฉ์ผ ์ฃผ์"
git config --global core.editor nano # merge commit ํ
์คํธ ์๋ํฐ ์ค์ , ๊ธฐ๋ณธ ํ
์คํธ ์๋ํฐ: vi
ssh-keygen # ssh ํค ์์ฑ
cat ~/.ssh/id_rsa.pub # ๊ณต๊ฐํค ์ถ๋ ฅ
git init # ๋๋ ํ ๋ฆฌ๋ฅผ Git์ ๊ด๋ฆฌํ์ ๋ค์ด๊ฐ๊ฒ ํจ
git remote add origin "Repository ์ฃผ์" # Remote Repository์ ์ฐ๊ฒฐ
git remote add [๋ฑ๋กํ๊ณ ์ถ์ ์ด๋ฆ] "Repository ์ฃผ์" # Remote Repository์ ์ฐ๊ฒฐ
git remote -v # ํ์ฌ Local Repository์ ์ฐ๊ฒฐ๋ ๋ชจ๋ Remote Repository ์ถ๋ ฅ
git pull origin [branch ์ด๋ฆ] # Remote Repository์ ์์
๋ด์ฉ ๋ฐ์์ค๊ธฐ
git pull [๋ฑ๋กํ๊ณ ์ถ์ ์ด๋ฆ] [branch ์ด๋ฆ] # Remote Repository์ ์์
๋ด์ฉ ๋ฐ์์ค๊ธฐ
# branch ์ด๋ฆ ex) master, main
git status # ์ํ ํ์ธ
git clone "๋งํฌ"
git add [ํ์ผ ์ด๋ฆ]
git add .
git add *
git commit -m "์ปค๋ฐ ๋ด์ฉ"
git commit -am "์ปค๋ฐ ๋ด์ฉ" # add, commit ํ ๋ฒ์
git push origin main
git log # Commit ๋ก๊ทธ ์ถ๋ ฅ
git restore "ํ์ผ ์ด๋ฆ" # ์ปค๋ฐ๋์ง ์์ Local Repository์ ๋ณ๊ฒฝ ์ฌํญ ์ทจ์
git reset HEAD^ # ์์ง Remote Repository์ ์ฌ๋ผ๊ฐ์ง ์์ ์ปค๋ฐ ์ทจ์
git reset HEAD^^^
git reset HAED^3
git reset HAED~3
# --soft
# --hard
๐ ์ฐธ๊ณ ๋งํฌ
๋๊ตฌ๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋ Git ์ ๋ฌธ