October 19, 2020
ํ์ด๋๊ณผ ์ฌ์ฏ์๋ฅผ ๋๊ธฐ๋ฉด์๋ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ํ์ด๋์ ๋ธ๋์น์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์๊ฒ ๋์๋ค. ํ์ด๋ ๋์ ๋ชฐ๋๋ ๋ถ๋ถ์ ์๊ฒ ๋์ด ์ ๊ธฐํจ์ ๋๊ผ๋๋ฐ ๊ธ๋ฐฉ ๊น๋จน์๊น๋ด ํฉ๊ธํ ๋ธ๋ก๊ทธ๋ฅผ ์์ฑํ๋ค.
์๋ง ๋ด๊ฐ ์๊ฒ ๋ ๋ด์ฉ์ด ์ข ํ๋ฆฐ ๋ถ๋ถ์ด ์๋๋ผ๋ ํ์ตํ๋ฉด์ ์์ ํ๋ฉด ๋๋ ํฌ๊ฒ ๊ฐ์์น๋ ์๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ์จ์ ํตํด ๊น ํ๋ก์ฐ ์ฐ์ตํ๋ ์ฌํ ํ์ด ํ๋ก๊ทธ๋๋ฐ ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ ์ ์ด๋ณด๊ฒ ๋ค.
git remote add pair <Repo URL for pairs fork>
git remote -v
git push origin master (or other branch name)
git pull pair master (or other branch name)
git push origin master (or other branch name)
์ฒ์์ ๊ฐ์ fork ๋ฐ clone ํด์จ ๋ค ๋ด์ฉ๋ฌผ์ ํ์ธํด ๋ณด๋, README.md ํ์ผ์ด ํ๋ ์์๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๊ฑด๋ค์ง ์๊ณ index.js ๋ผ๋ ํ์ผ์ ๋ง๋ค๊ณ ๊ทธ ์์ ์ฌ์น ์ฐ์ฐ ํจ์๋ฅผ ๋ฒ๊ฐ์ ๋ง๋ค์ด ๋ฃ์ผ๋ฉด์ ์งํํ๋ค.
๋งจ ๋จผ์ ๋ํ๊ธฐ ํจ์๋ฅผ ๋ฃ์ด ๋ณด์๋ค.
function adder(a, b) {
return a + b
}
๊ทธ๋ฆฌ๊ณ ๋ด repo ์ push. ์ฌ๊ธฐ๊น์ง๋ ์ผ๋ฐ์ ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ด๋์ด ๋ด ๋ ํฌ์ ์ฐ๊ฒฐํ๊ณ ๋ค์ push ๋ฅผ ํ๋ค.
์ฌ์ง๊ป ํด๋ณธ ์ ์ด ์์ด์ ์ด์ง ๋นํฉํ์ง๋ง ํ์ด๋๊ป์ ๋นํฉํ์ง ์๊ณ ์ปจํธ๋กค ํด์ฃผ์ จ๋ค.
์ผ๋จ ๊ฐ์ด๋ ๋๋๋ก์ ๋ฐฉ๋ฒ์
git remote add pair <Repo URL for pairs fork>
git remote -v
์ธ๋ฐ ์๋์ ๊ฐ์ ํ๋ฉด์ผ๋ก ์งํํ๊ณ ๋ญ ๋ป์ธ์ง๋ ๋ชจ๋ฅด์ง๋ง ์๋ฌดํผ ํ์ด๋์ local ์ ์ ์ฅ๋ ์ฌํญ์ ๊ฐ์ ธ์๋ค.
์ด์ ์ด ์ํ์์ ์์ ๊ณผ์ ์ ๋ค์ ๋ฐ๋ณตํ์ง ์๊ณ git branch ๋ฅผ ์์ฑํ ๋ค branch ๋ก ์์ ๊ณต๊ฐ์ ์ฎ๊ฒจ ์์ ํ ๋ค ์ฌ๋ ค ๋ณด๊ธฐ๋ก ํ๋ค.
git branch ๋ ๋ง ๊ทธ๋๋ก ์๋ณธ์์ ๊ฐ์ง์น๊ธฐ ๋ ๋ถ๋ฆฌ๋ ์์ ์์ญ์ด๋ผ๊ณ ํ ์ ์๋ค.
branch ๋ ํ์ฌ ์์ ๊ณต๊ฐ์ ๋ฒ ์ด์ค๋ก ๋ง๋ค์ด ์ง๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ์ฌ ๋ด๊ฐ ์์ ํ๋ ๊ฒฝ๋ก๊ฐ ์ด๋์ ์๋์ง ํ์ธํด์ผ ํ๋ค.
git checkout <๋ธ๋์น ์ด๋ฆ> ์ ํตํด ํด๋น ์ด๋ฆ์ branch ๋ก ์ด๋, ์ฆ ์์ ๊ณต๊ฐ์ ์ฎ๊ธธ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ
git checkout -b <๋ง๋ค๊ณ ์ถ์ ๋ธ๋์น๋ช
>
์๋ณธ์ ๋ฒ ์ด์ค๋ก ํ๋ ๋ค๋ฅธ ๋ธ๋์น๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด,
git checkout ์๋ณธ
git checkout -b ๊ธฐ๋ฅ2
git checkout -b mook ์ผ๋ก โmookโ ์ด๋ผ๋ branch ๋ฅผ ์์ฑํ๊ณ , ๋์์ master ์์ โmookโ ์ด๋ผ๋ branch ๋ก ์์ ๊ณต๊ฐ์ ์ฎ๊ฒผ๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋์ ํจ์๋ฅผ ์ถ๊ฐํ๋ค. ํ์ด๋์ ๋บ์ ํจ์์ ๋๋ถ์ด ๋ด๊ฐ ํ๋ฉด ์ธ๋ฒ์งธ ์์ ์ด๋ค.
// add divide by mook, dotorimook
function divide(a, b) {
return a / b
}
์ปค๋ฐ ๋ฉ์์ง๋ฅผ ๋จ๊ฒจ ์ฃผ๊ณ , git push origin mook ์ ํตํด ๋ณ๊ฒฝ ์ฌํญ์ โmookโ ์ด๋ผ๋ branch ์ ๋ณ๊ฒฝ์ฌํญ์ push ํ๋ค.
์ด์ ๊ถ๊ธํจ์ด ์๊ธด๋ค.
๊ณต๋ ์์ ์๊ฐ ์์ฒ๋ผ branch ๋ฅผ ๋ง๋ค์ด push ๋ฅผ ํ์ ๋ ๊ทธ ๋ณ๊ฒฝ ์ฌํญ์ ๋ด๊ฐ ๊ฐ์ ธ์ฌ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น?
๋ธ๋์น๋ฅผ ํ๋ ๋ ๋ง๋ค์ด์ ๋ณธ๋ ํฌํฌ๋ฐ์ ์ ์ฅ์์ merge ๋ ํด๋ณด๊ณ ์ด๋ฐ ์ ๋ฐ ์๋๋ฅผ ํ์ด๋๊ณผ ํด๋ณด์์ผ๋ ๋์ง ์์๋ค.
์ถ์ฒ : https://lucidmaj7.tistory.com/161
์ ๋ธ๋ก๊ทธ์ 3๋ฒ์งธ ๋ด์ฉ์ ๋ณด๊ณ ๋ฐ๋ผ ํ ๋์ ํ์ด๋์ด push ํ ์๊ฒฉ repo branch ๋ฅผ ๋ด ๋ก์ปฌ ๋ธ๋์น๋ก ๊ฐ์ ธ์ฌ ์ ์์๋ค.
๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
// 1. ๋ก์ปฌ๊ณผ ์๊ฒฉ ์ ์ฅ์ ๋ชจ๋์ branch list๋ฅผ ๋ณผ ์ ์๊ฒ ํ๊ธฐ.
git branch -a
// 2. ์๊ฒฉ ์ ์ฅ์์ branch list๋ฅผ ๋ณผ ์ ์๊ฒ ํ๊ธฐ.
git branch -r
// 3. ์๋ฒ์๋ ์กด์ฌํ์ง๋ง, ๋ก์ปฌ์๋ ์์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ ์ ์ฅํ๋ค.
git fetch --all
// 4. ํ์ด๋์ ์๊ฒฉ repo branch ๋ฅผ ๋ด ๋ก์ปฌ ๋ธ๋์น๋ก ๊ฐ์ ธ์ค๊ธฐ.
git branch seolleung sanghyun/hyunbranch
// 5. ํด๋น ๋ก์ปฌ ๋ธ๋์น๋ก ์ด๋.
git checkout seolleung
// 6. ์ฝ๋๋ฅผ ์์
ํด์ ์ ์ฅํ๊ณ ์ปค๋ฐ ๋ฐ ํธ์ํ๊ธฐ.
git add index.js
git commit -m "added function by seolleung"
git push origin seolleung
๋ด ๋ก์ปฌ ๋ธ๋์น์ ํ์ด๋์ ์๊ฒฉ repo branch ๋ฅผ ๊ฐ์ ธ์์ ์ถ๊ฐ๋ก ๋ง๋ถ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๊ทธ ๋ค์์?
๋ง์คํฐ ๋ธ๋์น์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณํฉ (merging) ํด ๋ณด์!
๋ง์คํฐ ๋ธ๋์น์ ๊ทธ๊ฐ ๋ธ๋์น ์์์ ์์ ์ฌํญ์ ๋ชจ๋ ๋ฐ์ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์งํํ๋ค.
// 1. ๋ง์คํฐ ๋ธ๋์น๋ก ์ ํํ๊ธฐ.
git checkout master
// 2. ๋ณํฉ (merge) ํ๊ธฐ (์ต์ข
๋ชจ๋ ์ฝ๋์ ๋ณ๊ฒฝ์ฌํญ์ ๋ด์ branch ๋ seolleung)
git merge seolleung
// 3. push ํ๊ธฐ.
git push origin master
// 4. branch ์ง์๋ฒ๋ฆฌ๊ธฐ.
git branch -d mook
git branch -d dotorimook
git branch -D seolleung
// ์๋๋ ๋๋ฌธ์ D ๋ฅผ ์จ์ ์ง์ ๋ค.
๊ณผ์ ์ ์บก์ฒํด ๋ณด์๋ค.
์์ง ์ถฉ๋ ์ํฉ์ ๋ง๋ค์ด ๋ณด์ง๋ ๋ชปํ๋ค. ์ด๋ค ๋์ ์ถฉ๋ ์ํฉ์ ์ผ๊ธฐ ํ๋์ง ์์์ ๋ณด๋ฉด์ ๋ค์ ๋ณด๊ณ ๋ด์ผ ํ์ด๋๊ณผ ์งํํ ๊ฒ์ด๋ค.
๋ด๊ฐ ์ด์ ํ ์ ์๋ ๋ฐฉ๋ฒ์
https://git-scm.com/book/ko/v2
https://rogerdudler.github.io/git-guide/index.ko.html
์ธ๋ฐ, ์ผ๋จ ๋จธ๋ฆฌ๊ฐ ๋๋ฌด ํฐ์ง๊ฒ ๊ฐ์ผ๋ฏ๋ก 1ํ๊ณ ์ ํ๋ธ ์์์ ๋ณด๋ ๊ฒ์ผ๋ก ์ค๋ ์ผ๊ณผ๋ฅผ ๋ง๋ฌด๋ฆฌํด์ผ ๊ฒ ๋ค.