Git / Github / branch / merge / ๋ณํฉ ์ถฉ๋ ํด๊ฒฐ
๐ป Git
Git์ ์ปดํจํฐ ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ์ ์ถ์ ํ๊ณ ์ฌ๋ฌ ์ฌ์ฉ์๋ค ๊ฐ์ ํด๋น ํ์ผ ์์
์ ์กฐ์จํ๊ธฐ ์ํ ๋ํ์ ์ธ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ด๋ค.
Git์ ์ฌ์ฉํ๋ฉด ํ๋ก์ ํธ๋ฅผ ์ข ๋ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
Git์ ์ค์นํ๊ณ Github์ ๊ฐ์
ํ ํ ํฐ๋ฏธ๋์ git --version์ ์
๋ ฅํด ์ ์์ ์ผ๋ก git์ด ์ค์น๋์๋์ง ํ์ธํ์.
ํ๋ก์ ํธ๋ฅผ git์ ์ฐ๊ฒฐํ๊ธฐ ์ํด ๋ค์์ ์ ๋ ฅํ์.
1. git init //ํ์ฌ ํ๋ก์ ํธ ๋ฒ์ ๊ด๋ฆฌ ์์
2. git config --global core.autocrlf true //๊ฐํ๋ฌธ์ ์ค์ , mac์ true๊ฐ ์๋ input ์ ๋ ฅ
3. git config --global user.name 'github ์ด๋ฆ'
4. git config --global user.email 'github ์ด๋ฉ์ผ'
5. git config --global list //์ ๋ ฅํ ๋ด์ฉ ํ์ธํ๊ธฐ, ๋น ์ ธ๋์ค๋ ค๋ฉด q
๐ Github
ํ๋ก์ ํธ๋ฅผ github์ ์ฌ๋ฆฌ๊ธฐ ์ํด ์๋ก์ด repository๋ฅผ ๋ง๋ค๊ณ ์ฃผ์๋ฅผ ๋ณต์ฌํ์.
1. git status //๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํด์ผํ๋ ํ์ผ๋ค ํ์ธ(์๋ต๊ฐ๋ฅ)
2. git add . //๋ชจ๋ ํ์ผ ๋ณ๊ฒฝ์ฌํญ ์ถ์
3. git commit -m '๋ฉ์ธ์ง ์ ๋ ฅ' //๋ฉ์ธ์ง์ ํจ๊ป ๋ฒ์ ์์ฑ
4. git log //๋ด์ญ ํ์ธ(์๋ต๊ฐ๋ฅ)
5. git remote add origin ์ฃผ์๋ถ์ฌ๋ฃ๊ธฐ //repository ์ฐ๊ฒฐ(์ฒ์ ํ ๋ฒ๋ง)
6. git push origin master //master๋ผ๋ ์ด๋ฆ์ branch๋ก ์ ๋ก๋
๐ณ Branch
ํ๋ก์ ํธ๋ฅผ ํ ๋ ํจ๊ปํ๋ ํ์๋ค๊ณผ ์๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ค๋ฉด branch๋ผ๋ ๊ฐ๋
์ ์ด์ฉํ๋ค.
master๋ ์ค๊ธฐ๋ฅผ ์ ์ธํ๊ณ ๋ค๋ฅธ ์ด๋ฆ์ branch(๊ฐ์ง)๋ฅผ ๋ง๋ค์ด ๊ฐ๋ฐ ํ ๋์ค์ merge(๋ณํฉ)ํ๋ ๊ฒ์ด๋ค.
signin์ด๋ผ๋ ์ด๋ฆ์ ์๋ก์ด branch๋ฅผ ๋ง๋ค๊ณ ์ ์ํด๋ณด์.
1. git branch //branch ๋ชฉ๋ก ํ์ธ, ์ฒ์์๋ master๋ง ์กด์ฌ
2. git branch -a //์๊ฒฉ ์ ์ฅ์์ branch๋ ํ์ธ
3. git branch signin // signin์ด๋ผ๋ ์ด๋ฆ์ branch๊ฐ ์์ฑ๋จ
4. git checkout signin // signin branch๋ก ์ ์
์๋ก์ด branch์์ ์ ์ํ์ฌ ๊ฐ๋ฐํ๋ค๋ฉด ๋ค๋ฅธ branch์๋ ์ํฅ์ด ์๋ค.
์๋ฅผ ๋ค์ด signin ์์ ์๋ก์ด ํด๋๋ฅผ ๋ง๋ค๊ณ ์์
ํ๋ฉด master์์๋ ๊ทธ ํด๋๊ฐ ๋ณด์ด์ง ์๋๋ค.
signin์์ ์์ ํ ๊ฒ์ github๋ก ์ฌ๋ ค๋ณด์
1. git add .
2. git commit -m '๋ฉ์ธ์ง ์ ๋ ฅ'
3. git push origin signin
github์ ๋ค์ด๊ฐ๋ณด๋ฉด branches์ master ๋ง๊ณ signin์ด ์ถ๊ฐ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๐งถ Merge
์ด์ master์ signin์ mergeํด๋ณด์
- github์ ํด๋น repository์์ pull requests ํญ์์ new pull request ํด๋ฆญ
- ์ค๋ฅธ์ชฝ์ ์๋ compare์ ํด๋ฆญํ์ฌ signin ๋ธ๋์น๋ก ๋ณ๊ฒฝ (compare:signin ์ด base:master ๋ก ํฉ์ณ์ง์ ์๋ฏธ)
- ์๋์์ master์ signin์ ์ฝ๋ ์ฐจ์ด๋ฅผ ํ์ธํ์.
- create pull request ํด๋ฆญ, ์ฝ๋ฉํธ ์ ๋ ฅ(์๋ต ๊ฐ๋ฅ) ํ create pull request ํด๋ฆญ, ์๋์ merge pull request ํด๋ฆญ, confirm merge ํด๋ฆญ
๐ Clone
์๋ก์ด ํ๊ฒฝ์์ github์ ์ฌ๋ผ๊ฐ ํด๋น ํ๋ก์ ํธ๋ฅผ ๊ฐ์ ธ์๋ณด์
ํด๋น ํ๋ก์ ํธ์ ๋ ํฌ์งํ ๋ฆฌ๋ก ๋ค์ด๊ฐ ํ code ํด๋ฆญ ํ ์ฃผ์๋ฅผ ๋ณต์ฌํ๊ณ ํฐ๋ฏธ๋์์ ํ๋ก์ ํธ๋ฅผ ๊ฐ์ ธ์ฌ ๊ฒฝ๋ก์ ๋ค์ด๊ฐ๋ค.
1. git clone ์ฃผ์๋ถ์ฌ๋ฃ๊ธฐ
2. dir //(mac์ ls)ํด๋๊ฐ ๋ค์ด์๋์ง ํ์ธ
Tip. vscode์์ ์๋ก์ด ํ๋ก์ ํธ ํด๋๋ฅผ ์ด๋ ค๋ฉด ํฐ๋ฏธ๋์์ ํด๋น ํ๋ก์ ํธ ํ์ผ๋ก ๊ฒฝ๋ก์ด๋ํ์ฌ code . ๋ฅผ ํ๊ฑฐ๋ ๊ธฐ์กด ์ฐฝ์ ๋ซ๊ณ ์ด๋ ค๋ฉด code . -r ์ ๋ ฅ
๐ฅ ๋ณํฉ ์ถฉ๋์ ํด๊ฒฐ๋ฐฉ๋ฒ
์๊ฒฉ ์ ์ฅ์์ ๋ก์ปฌ ์ ์ฅ์์ ๋ด์ฉ์ด ๋ค๋ฅผ ๋ push๊ฐ ๊ฑฐ๋ถ๋๋ค.
์๋ฅผ ๋ค๋ฉด master branch์์ A์์ B๋ก ์์ ํ๊ณ ์๊ฒฉ์ ์ฅ์์ push๋ฅผ ํ๋๋ฐ A์์ C๋ก ์์ ํ๊ณ ๋ค์ push๋ฅผ ํ๋ค๋ฉด rehjected ๊ฒฝ๊ณ ๋ฌธ์ด ๋จ๋ฉด์ push๊ฐ ๋์ง ์๋๋ค.
์ด๋ด ๋๋ ๋ค์๊ณผ ๊ฐ์ด ํด๊ฒฐํ์.
1. git pull origin master
2. ํ์ฌ ๋ณ๊ฒฝ์ฌํญ๊ณผ ์๊ฒฉ ์ ์ฅ์์ ์ ์ฅ๋ ๋ถ๋ถ์์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ณด์ฌ์ฃผ๋ฉด 'ํ์ฌ ๋ณ๊ฒฝ ์ฌํญ ์๋ฝ' ๋๋ '์์ ๋ณ๊ฒฝ ์ฌํญ ์๋ฝ' ๋ฑ ์ค ํ๋๋ฅผ ์ ํํ๊ฑฐ๋, ์ํ์ง ์๋ ์ฝ๋๋ฅผ ์ง์ ์ญ์ ๋๋ ๋ค๋ฅธ ์ฝ๋๋ก ์์ ํ๊ณ ์ ์ฅํ๋ค.
3. git status //๋ณ๊ฒฝ์ฌํญ ํ์ธ(์๋ต๊ฐ๋ฅ)
4. git add .
5. git commit -m '๋ฉ์ธ์ง ์ ๋ ฅ'
6. git push origin master
github์์ ์์ ๋ ๋ถ๋ถ์ ํ์ธํ์.