๋ชฉ๋กํ๋ก๊ทธ๋๋ฐ/Git & GIthub ๊น๊ณผ ๊นํ๋ธ (15)
Bibi's DevLog ๐ค๐
OAuth Github ๋ก๊ทธ์ธ OAuth๋ https://www.youtube.com/watch?v=hm2r6LtUbk8 OAuth์ ์ธ ์ญํ ๋ค ๋ด ์๋น์ค ์ฌ์ฉ์ ์ ๋ช ์๋น์ค (๊ตฌ๊ธ, ๋ค์ด๋ฒ ๋ฑ) OAuth์ ์ธ์ฆ ์ ์ฐจ ์ ๋ช ์๋น์ค๊ฐ Access Token์ ๋ฐ๊ธํ๋ค AccessToken์ด๋? ์ ๋ช ์๋น์ค๊ฐ ๊ฐ์ง ์ฌ์ฉ์์ ๋ณด์ ์ ๊ทผํ๊ธฐ ์ํด, ์ฌ์ฉ์์ ์์ด๋ ๋น๋ฐ๋ฒํธ ๋์ ์ฌ์ฉํ๋ ํ ํฐ ์ ๋ช ์๋น์ค๊ฐ ๊ฐ์ง ์ฌ์ฉ์ ์ ๋ณด๋ค ์ค์์ ๋ด ์๋น์ค๊ฐ ๊ผญ ํ์ํ ๊ธฐ๋ฅ๋ง ๋ถ๋ถ์ ์ผ๋ก ์ ๊ทผ์ ํ์ฉํ๋ค. ๋ด ์๋น์ค๋ OAuth๋ฅผ ํตํด AccessToken์ ๊ฐ์ ธ์จ๋ค ๋ด ์๋น์ค๋ AccessToken์ ํตํด ์ ๋ช ์๋น์ค๊ฐ ๊ฐ์ง ์ฌ์ฉ์ ์ ๋ณด์ ์ ๊ทผํ๊ณ , ๊ฐ์ ธ์ค๊ณ , ์์ ํ๋ค. GitHub OAuth - Authorizing OAu..
https://docs.github.com/en/enterprise-server@2.21/developers/apps/building-oauth-apps/scopes-for-oauth-apps GitHub OAuth - Scopes for OAuth Apps Scope(๋ฒ์)๋ ๋น์ ์ด ์ ํํ ์ด๋ค ์ข ๋ฅ์ ์ ๊ทผ์ ํ์๋ก ํ๋์ง๋ฅผ ๊ตฌ์ฒดํํด์ค๋ค. scope๋ OAuth ํ ํฐ์ ์ ๊ทผ์ ์ ํํ๋ค. ์ฌ์ฉ์๊ฐ ๊ฐ์ง ๊ถํ ์ด์์ ์ด๋ค ์ ๊ทผ๋ ํ์ฉํ์ง ์๋๋ค. ๊นํ OAuth ์ฑ์ ์ค์ ํ ๋, ์์ฒญ๋๋ scope๋ค์ด ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ค. scope ํ์ธํ๊ธฐ ๋ด๊ฐ ์ด๋ค OAuth scope๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , API ๋์์ด ์ด๋ค scope๋ฅผ ์น์ธํ๋์ง ํ์ธํ๊ธฐ ์ํด์๋ ํค๋๋ฅผ ๋ณด๋ฉด ๋๋ค. $ curl -H "Authoriza..
[Git] rebase ์ถฉ๋ ํด๊ฒฐํ๊ธฐ ์ถฉ๋์ด ๋ ํ์ผ์ ์ด๋ฉด ์ด๋์์ ์ถฉ๋์ด ๋ฐ์ํ๋์ง ํ์๋์ด ์๋ค. ์ถฉ๋ ํ์ผ๋ค์ ์ด์ด ์ต์ข ๋จธ์งํ ๋ด์ฉ๋ค๋ก ์ ๋ฆฌํ๋ค. git add . git commit : ์ถฉ๋ ํด๊ฒฐํ ๋ด์ฉ์ ์ปค๋ฐ git reabse --continue ๋ชจ๋ ์ถฉ๋ ํด๊ฒฐ ํ ์ ๋ ฅํ๋ค.
fetch, rebase fetch : (๋ป : ๊ฐ์ ธ์ค๋ค) - ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ์ ๋ก์ปฌ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ (๋ณํฉ์ ํ์ง ์์) pull : (๋ป : ๋น๊ฒจ์ค๋ค) - ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ์ ๋ก์ปฌ๋ก ๊ฐ์ ธ์ ๋ณํฉํ๋ ๊ฒ merge : ๋ ๋ธ๋์น๋ฅผ ํฉ์น๋ ๊ฒ A๋ธ๋์น์ B๋ธ๋์น๋ฅผ ํฉ์น ๋, ๊ฐ์์ ์ปค๋ฐ ๋ด์ญ์ ๊ทธ๋๋ก ๋จ๊น rebase : ๋ ๋ธ๋์น๋ฅผ ํฉ์น๋ ๊ฒ A๋ธ๋์น์ B๋ธ๋์น๋ฅผ ํฉ์น ๋, B์ ์ปค๋ฐ์ A์ ์ปค๋ฐ ๋ค์ ์์นํ๊ฒ ๋จ ๊ฒฐ๊ณผ์ ์ผ๋ก ํ๋์ ๋งค๋๋ฌ์ด ๋ธ๋์น๊ฐ ๋จ
๊น ์ปค๋ฐ๋ฉ์์ง ์์ ํ๊ธฐ ์ถ์ฒ : ๊น ์ปค๋ฐ๋ฉ์์ง ์์ . ๊ฐ์ฌํฉ๋๋ค๐โ๏ธ 1.์์ง ์ปค๋ฐ์ด ๋ก์ปฌ์ ์ฅ์์ ์์ ๋ ๋ก์ปฌ ์ ์ฅ์์์ ์ปค๋ฐ์ ํ์ง๋ง, push๋ ์์ง ํ์ง ์์ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ต๊ทผ์ ์ปค๋ฐ ์์ ํ๊ธฐ git commit --amend ๋ ์ค๋๋ ์ปค๋ฐ ์์ ํ๊ธฐ, ๋๋ ํ ๋ฒ์ ์ฌ๋ฌ ์ปค๋ฐ ์์ ํ๊ธฐ git log๋ก ์ปค๋ฐ๋ด์ญ์ ๋ณด๋ฉฐ ์ด๋ค ์ปค๋ฐ์ ์์ ํ ์ง ํ์ธํ๋ค. git rebase -i HEAD~์ซ์ : ํ์ฌ ๋ธ๋์น์์ ๊ฐ์ฅ ์ต๊ทผ์ ์ปค๋ฐ ์ซ์๊ฐ๋ฅผ ๋ณด์ฌ์ค๋ค. vim์ด ์ด๋ฆฌ๊ณ ์ต๊ทผ ์ปค๋ฐ๋ค์ด ์๋์ ๊ฐ์ด ๋ํ๋๋ค. pick e499d89 Delete CNAME pick 0c39034 Better README pick f7fde4a Change the commit message but push the same com..
.gitignore๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ์ฌ์ฉ ๋ฐฉ๋ฒ .gitignore๋ฅผ ์ฌ์ฉํ๋ ์ด์ ํ์ผ ๋ฐฑ์ ์ ๋ณด, ์ ํ ๋น๋ ์ ๋ณด ๋ฑ์ ๋ก์ปฌ ๊ตฌ์ฑ์ ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ฆฌ์ง ์๊ธฐ ์ํด (git์ด ์ด ํ์ผ๋ค์ trackํ์ง ์๋๋ก untracked files๋ก ์ค์ ํจ) ๊ฐ์ข noise๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ํ์ง ์๋ ํ์ผ์ ์ ๋ก๋ ๋ฐฉ์ง ๋ฐ์ดํฐ ์ถฉ๋๋ก ๋ฐ์ํ ์ ์๋ ์์ค ๋ฐฉ์ง .gitignore ์ฌ์ฉ ๋ฐฉ๋ฒ ๊ฐ๋จํ ๋ฐฉ๋ฒ : gitignore.io ์ด์ฉํ๊ธฐ. ์ฌ์ฉ ์ธ์ด, IDE, OS, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ์ ๋ ฅํ๊ณ ์์ฑ๋ .gitignore ํ์ผ์ ๋ณต๋ถํ์ฌ ์ฌ์ฉํจ. ์ง์ ๋ง๋๋ ๋ฐฉ๋ฒ : vim์์ .gitignoreํ์ผ์ ์์ฑํ๊ณ trackํ์ง ์์ ํ์ผ์ ์ง์ ์์ฑํ๋ค. .gitignore ์ ์ฉํ๊ธฐ์ ์ ๋์์๋ค.
๊นํ๋ธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์จ๋ผ์ธ ์ฝ๋๋ฆฌ๋ทฐ ์์ *๋ก์ปฌ ์ ์ฅ์ = ๋ด PC (์ ์ด๋ฏธ์ง์ ์ฃผํฉ์ ์์ญ) *์๊ฒฉ ์ ์ฅ์ = ๊นํ๋ธ ์ ์ฅ์ (javajigi/java-racingcar) *ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์ = ๋ด๊ฐ ์ฐธ์ฌํ๊ณ ์ถ์ ๊นํ๋ธ ์๊ฒฉ์ ์ฅ์๋ฅผ ๋ปํจ. (code-squad/java-racingcar) *origin = ๋ด ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ปํจ *upstream = ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์๋ฅผ ๋ปํจ *๋ก์ปฌ ์ ์ฅ์์ ๋ฉ์ธ ๋ธ๋์น ์ด๋ฆ = ํ๋ก์ ํธ ์๊ฒฉ ์ ์ฅ์์ ๋ด ๋ธ๋์น ์ด๋ฆ ํ๋ก์ ํธ ์๊ฒฉ์ ์ฅ์์ ๋ด ๋ธ๋์น ์์ฑ์ ์์ฒญํ๋ค. ํด๋น ์๊ฒฉ์ ์ฅ์๋ฅผ forkํ๋ค. fork : ๋ค๋ฅธ ๊ณ์ ์ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ด ๊นํ๋ธ ๊ณ์ ์ผ๋ก ๋ณต์ฌํด ์จ๋ค. ๊นํ๋ธ ์ ์ฅ์ ์ค๋ฅธ์ชฝ ์๋จ์ Fork๋ฒํผ์ ๋๋ฅด๋ฉด ๋๋ค. forkํ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ก์ปฌ ์ ์ฅ..
5. ๊นํ๋ธ๋ก ํ์ ํ๊ธฐ 5.1 ์๊ฒฉ ์ ์ฅ์ ํจ๊ป ์ฌ์ฉํ๊ธฐ ํ๋์ ๊นํ๋ธ ๊ณ์ ์ผ๋ก ๋ ์ด์์ ์ปดํจํฐ์์ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๊ณต์ ํด ๋ฒ์ ์ ๊ด๋ฆฌํ ์ ์๋ค. ์๊ฒฉ ์ ์ฅ์ ๋ณต์ ํ๊ธฐ (clone) ํด๋ก clone : ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ง์ญ ์ ์ฅ์๋ก ๋๊ฐ์ด ๋ณต์ ํ๋ ๊ฒ. ์๊ฒฉ ์ ์ฅ์๋ฅผ ํด๋ก ํ๋ฉด, ๋ณต์ ๋ ์ง์ญ ์ ์ฅ์์ ์๊ฒฉ ์ ์ฅ์๋ ์๋์ผ๋ก ์ฐ๊ฒฐ๋๋ค. ํด๋ก ์ ์ฐจ ๊นํ๋ธ ์๊ฒฉ ์ ์ฅ์์ Code๋ฅผ ๋๋ฅด๊ณ , ์๊ฒฉ ์ ์ฅ์์HTTPS๋งํฌ๋ฅผ ๋ณต์ฌํ๋ค. ํด๋ก ํ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค ์์น๋ก ์ด๋ํ ํ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค. git clone HTTPS๋งํฌ ๋๋ ํ ๋ฆฌ๋ช : HTTPS๋งํฌ์ ์๊ฒฉ์ ์ฅ์๋ฅผ ํด๋น ๋๋ ํ ๋ฆฌ๋ก ํด๋ก ํจ (ํด๋น ์ด๋ฆ์ด ์์ผ๋ฉด ์๋ก ์์ฑ) git clone HTTPS๋งํฌ . : HTTPS๋งํฌ์ ์๊ฒฉ์ ์ฅ์๋ฅผ ํ์ฌ ๋๋ ํ ๋ฆฌ์ ํด๋ก ํจ..