Bibi's DevLog ๐ค๐
[Github] ๊นํ๋ธ ํ๋ก์ ํธ ๊ธฐ๋ฐ์ ์จ๋ผ์ธ ์ฝ๋๋ฆฌ๋ทฐ ์์ ๋ณธ๋ฌธ
[Github] ๊นํ๋ธ ํ๋ก์ ํธ ๊ธฐ๋ฐ์ ์จ๋ผ์ธ ์ฝ๋๋ฆฌ๋ทฐ ์์
๋น๋น bibi 2021. 2. 12. 00:49๊นํ๋ธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์จ๋ผ์ธ ์ฝ๋๋ฆฌ๋ทฐ ์์
*๋ก์ปฌ ์ ์ฅ์ = ๋ด PC (์ ์ด๋ฏธ์ง์ ์ฃผํฉ์ ์์ญ)
*์๊ฒฉ ์ ์ฅ์ = ๊นํ๋ธ ์ ์ฅ์ (javajigi/java-racingcar
)
*ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์ = ๋ด๊ฐ ์ฐธ์ฌํ๊ณ ์ถ์ ๊นํ๋ธ ์๊ฒฉ์ ์ฅ์๋ฅผ ๋ปํจ. (code-squad/java-racingcar
)
*origin
= ๋ด ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ปํจ
*upstream
= ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์๋ฅผ ๋ปํจ
*๋ก์ปฌ ์ ์ฅ์์ ๋ฉ์ธ ๋ธ๋์น ์ด๋ฆ = ํ๋ก์ ํธ ์๊ฒฉ ์ ์ฅ์์ ๋ด ๋ธ๋์น ์ด๋ฆ
ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์์ ๋ด ๋ธ๋์น ์์ฑ์ ์์ฒญํ๋ค.
ํด๋น ์๊ฒฉ์ ์ฅ์๋ฅผ
fork
ํ๋ค.fork
: ๋ค๋ฅธ ๊ณ์ ์ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ด ๊นํ๋ธ ๊ณ์ ์ผ๋ก ๋ณต์ฌํด ์จ๋ค.
๊นํ๋ธ ์ ์ฅ์ ์ค๋ฅธ์ชฝ ์๋จ์ Fork๋ฒํผ์ ๋๋ฅด๋ฉด ๋๋ค.
fork
ํ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ก์ปฌ ์ ์ฅ์๋กclone
ํ๋ค.git clone
: ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ก์ปฌ ์ ์ฅ์๋ก ๋ณต์ฌํด ์จ๋ค.
์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ณต์ฌํด ์ค๊ณ ์ถ์ ์์น๋กcd
ํ ๋ค ์๋ ๋ช ๋ น์ ์คํํ๋ค.git clone -b ๋ด๋ธ๋์น์ด๋ฆ --single-branch forkํ์๊ฒฉ์ ์ฅ์HTTPS์ฃผ์
clone
ํ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ์ด๊ณ , ์์ ์ ์ํ ์ ๋ธ๋์น๋ฅผ ๋ง๋ ๋ค.cloneํ ์์น์ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ์ด๊ณ , ํด๋น ์์น์์ ์ ๋ธ๋์น๋ฅผ ๋ง๋ ๋ค.
git checkout -b ์๋ธ๋์น์ด๋ฆ
: ํด๋น ๋ธ๋์น๋ฅผ ๋ง๋ฆ๊ณผ ๋์์ ํด๋น ๋ธ๋์น๋ก ์ฒดํฌ์์ํ๋ค.๋ก์ปฌ ์ ์ฅ์์ ๊ธฐ๋ณธ ๋ธ๋์น๋ ๋ ์ฑ, ์ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ๊ฑฐ๊ธฐ์ ์์ ํ ๋ค ์์ฑ๋๋ฉด mergeํ๋ ๋ฐฉ์์ผ๋ก ์์ ํ๋ค. ๊ธฐ๋ณธ ๋ธ๋์น์์ ์ง์ ์์ ํ์ง ์๋๋ค.
๋ง๋ ์ ๋ธ๋์น์์ ์์ ํ
add/commit
ํ๋ค.- ์๋ก์ด ๋ฒ์ ์ ์์ ํ๋ ๋จ๊ณ๋ง๋ค ๋ง๋ค๊ณ ์ปค๋ฐํ๋ ๊ฒ์ ๋ฐ๋ณตํ๋ค.
git add .
๋๋git add ํ์ผ๋ช
git commit -m "์ปค๋ฐ๋ฉ์์ง"
๋ก์ปฌ ์ ์ฅ์์์ ์์ ํ ๋จ์๋ฅผ ๋ง์น๋ฉด, ๋ด ์๊ฒฉ ์ ์ฅ์์
push
ํ๋ค.- ๋ก์ปฌ์์ ์์ฑ ๋ฐ ์์ ํ ์ ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์๋ ๋ฐ์ํ๋ค.
git push origin ์๋ธ๋์น์ด๋ฆ
์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๊ธฐ ์ํด, ๋ด ์๊ฒฉ ์ ์ฅ์์ ๋ฐ์๋ ์ ๋ธ๋์น๋ฅผ ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์๋ก
pull request
๋ฅผ ๋ณด๋ธ๋ค.- ๋ด ์๊ฒฉ ์ ์ฅ์์์ [New pull request]๋ฅผ ๋๋ฅธ๋ค.
- (Open a pull request์์) ํ๋ก์ ํธ ์๊ฒฉ ์ ์ฅ์์ ๋ธ๋์น(base)๋ ๋ด ๋ธ๋์น๋ก ์ ํํ๋ค.
- ๋ด ์๊ฒฉ ์ ์ฅ์์ ๋ธ๋์น(compare)๋ ์ ๋ธ๋์น(์๋ก ์์ฑ ํ ์์ ํ ๋ธ๋์น)๋ก ์ ํํ๋ค.
Able to merge
๋ฅผ ํ์ธํ ๋ค pull request ์ ๋ชฉ๊ณผ ๋ด์ฉ์ ์์ฑํด ๋ณด๋ธ๋ค.
pull request๋ฅผ ๋ฐ์(์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๋)์ฌ๋์ด ์ฐธ๊ณ ํ ์ ์๋๋ก ์์ ํ ๋ด์ฉ์ ๋ํ ์ค๋ช ์ ์ ์ผ๋ฉด ๋๋ค.- ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํ๋ ์ฌ๋์ ํด๋น pull request์ Files changed์ ๋ค์ด๊ฐ, ์ ์ฒญ์๊ฐ ์์ ํ ๋ด์ฉ์ ํ์ธํ๋ค. comment, Review summary๋ ๋จ๊ธธ ์ ์๋ค.
- ๋ฆฌ๋ทฐ์ด๋ก๋ถํฐ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์ผ๋ฉด, ํด๋น ๋ธ๋์น์์ ๋ฆฌ๋ทฐ์ ๋ํ ํผ๋๋ฐฑ ์์
์ ๊ณ์ํ๋ค.
5.๋ก ๋์๊ฐ์ ๋ฐ๋ณตํ๋ค. - ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํ๋ ์ฌ๋์ pull request์ ์์ ๋ด์ฉ์ด ๊ด์ฐฎ๋ค๊ณ ํ์ธ๋๋ฉด ํด๋น ๋ธ๋์น๋ฅผ mergeํ๋ค. ์ด๋ ํด๋น ์์ ์ ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์์ ๋ด ๋ธ๋์น์ ๋ด ์์ ๋ด์ฉ์ ๋ฐ์ํ๋ ๊ฒ์ด๋ค.
pull requestํ ์ฒซ ๋ฒ์งธ ์์ ์ด ๋ฐ์๋๊ณ ๋๋ฉด ๋ค์ ์์ ์ ํด์ผ ํ๋ค.
์์ ์ ํ๊ธฐ ์ , ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์์ ๋ด ๋ธ๋์น์ ๋ด ์์ ๋ด์ฉ์ด ๋ฐ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์, ๋ก์ปฌ ์ ์ฅ์์ ๋ฉ์ธ ๋ธ๋์น์๋ ํด๋น ์์ ๋ด์ฉ์ด ๋ฐ์๋๋๋ก ํ๋ ์ฐ๊ฒฐ ๋ฐ ๋๊ธฐํ ์์ ์ด ํ์ํ๋ค.- ๋จผ์ ๋ก์ปฌ์ ์ฅ์์์ ๋ฉ์ธ ๋ธ๋์น๋ก
git checkout
ํ๋ค. - ๋ก์ปฌ์ ์ฅ์๋ ํ์ฌ ๋ด ์๊ฒฉ์ ์ฅ์์๋ง ์ฐ๊ฒฐ์ด ๋์ด ์๋ค.
๋ก์ปฌ ์ ์ฅ์์ ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์๋ฅผ '์ฐ๊ฒฐ'ํ๋ ์์ ์ด ํ์ํ๋ค.git remote add upstream ํ๋ก์ ํธ์๊ฒฉ์ ์ฅ์HTTPS์ฃผ์
(์ต์ด 1ํ)git remote -v
: ๋ก์ปฌ์ ์ฅ์์ ์ฐ๊ฒฐ๋ ์๊ฒฉ์ ์ฅ์ ๋ด์ญ์ ํ์ธํ ์ ์๋ค.origin
๊ณผupstream
์ด ๋ ๋ค ์๋์ง ํ์ธํ๋ค.
(origin
= ๋ด ์๊ฒฉ ์ ์ฅ์ /upstream
= ํ๋ก์ ํธ ์๊ฒฉ ์ ์ฅ์)
- ๋จผ์ ๋ก์ปฌ์ ์ฅ์์์ ๋ฉ์ธ ๋ธ๋์น๋ก
๋ก์ปฌ์ ์ฅ์์ ์ฐ๊ฒฐ๋ ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์๋ก๋ถํฐ ๋ณ๊ฒฝ๋ ์์ ๋ด์ฉ์ ๊ฐ์ ธ์จ๋ค. (๋๊ธฐํ)
git fetch upstream ๋ด๋ธ๋์น์ด๋ฆ
: upstream(ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์)์์ ํด๋น ๋ธ๋์น๋ฅผ ๊ฐ์ ธ์จ๋ค.git branch -a
๋ก ๋ก์ปฌ์ ์ฅ์ ๋ฉ์ธ๋ธ๋์น, ๋ก์ปฌ์ ์ฅ์ ์ ๋ธ๋์น, ๋ด ์๊ฒฉ์ ์ฅ์ ๋ธ๋์น(remote/origin/..
), ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์ ๋ธ๋์น(remote/upstream/..
)๊ฐ ๋ชจ๋ ์๋์ง ํ์ธํ๋ค.git rebase upstream/๋ด๋ธ๋์น์ด๋ฆ
: ํ๋ก์ ํธ์๊ฒฉ์ ์ฅ์(upstream)์ ๋ด ๋ธ๋์น ๋ณ๊ฒฝ์ฌํญ์ ๋ก์ปฌ ์ ์ฅ์์ ๋ฉ์ธ ๋ธ๋์น๋ก ๊ฐ์ ธ์จ๋ค.
(๋ฐ๋์ ๋ก์ปฌ์ ์ฅ์์ ๋ฉ์ธ ๋ธ๋์น๋ก ์ฒดํฌ์์ํ ์ํ์์ ์คํํด์ผ ํจ)
์ด์ ๋ก์ปฌ์ ์ฅ์-ํ๋ก์ ํธ์๊ฒฉ์ ์ฅ์ ๊ฐ ๋๊ธฐํ ์์ ์ด ๋๋ฌ๋ค.
์ด์ ๋ก์ปฌ ์ ์ฅ์์์ 4.์ฒ๋ผ ์ ๋ธ๋์น๋ฅผ ๋ค์ ๋ง๋ค์ด ๋ค์ ์์ ์ ํ๋ฉด ๋๋ค.
์์ ํ์๋ 4. ์ดํ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๋ค