์ง์ด์ด์ด์ธ์ง ์ค๋๋ง์ ํฌ์คํ . ํ์ฌ๋ฅผ ๋ค๋๋ฉด์ ๊ฐ๋ฐ์ 1๋ ๋ฐ์ ๋ ์์ ๋๋ค๋ณด๋, ๊ฐ๋ฐ์ ํ๊ณ ์ถ์ ๋๊ฐ ๋ค ์๋ค. ํนํ,, ์ ๋ง ๋๋ฌผ๊ฒ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ฅผ ํ๊ณ ์ถ์ด์ก๋ค. (๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ฌ์ฌํ์ด๋ ์ฝฉ ๋์ด๋ฅผ ํ๊ณ ์ถ๋ฌ๊น)
์ด์ ๋ swift์๋ ๋ฉ์ด์ง ๋์ด๊ธฐ์, python์ผ๋ก ์๋กญ๊ฒ ์ค๋นํด๋ณด๋ ค๊ณ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋๋ฐ, github์ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ๊น๋จน์ด์ ์์ ํฌ์คํ ์ผ๋ก ๋ฐ์ ํด๋ฒ๋ฆฌ๋ ค๊ณ ํ๋ค.
๋๋ ๋ณดํต ์๋์ ๊ฐ์ ์์๋๋ก ํ๊ฒฝ๊ตฌ์ฑ์ ํ๋ค. ๋ญ ๋ก์ปฌ์์ ๋จผ์ ๋ ํฌ๋ฅผ ์์ฑํ๊ฑฐ๋, ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ๋ง๊ฒ ์ง๋ง ๋ ์ด๊ฒ ์ ค ํธํ๋ค.
- github์์ repo ์์ฑ
- git clone์ผ๋ก ํด๋น repo ๋ก์ปฌ์ ๋ณต์
- github ์ฐ๋ ํ์ธ
โ๏ธ ๊ฐ๋ฐํ๊ฒฝ
- Pycharm CE
- python version 3.10.9
- git client GUI: Fork
๋๋ถ๋ถ iterm์ ์ด์ฉํด์ commit ํ ๊ฒ์ด์ง๋ง, ๋ณ๊ฒฝ์ฌํญ์ ํ๋์ ๋ณด๊ธฐ ํธํ๋ผ๊ณ ์ฃผ๋ก ๋๋ fork๋ฅผ ์ฌ์ฉํ๋ค. (๊นํฌ๋ผ์ผ ๋ฑ์ ์ด๋ ค์ฐใ
)
โ๏ธ Github์์ repo ์์ฑ
๋๋ ๊นํ๋ธ์์ ๋จผ์ repo๋ฅผ ์์ฑํด์ค๋ค. ๋ก์ปฌ๋ก clone ํ์๋ ๋ด๋ถ์ ํ์ผ ๋ญ๋ผ๋ ์์ด์ผ ์ข commit testํด๋ณด๊ธฐ๊ฐ ์์ํ๋ฏ๋ก, readme๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ , .gitignore ํ์ผ๊น์ง ๋์ ์ถฉ ์์ฑํด์ ๋ฃ์ด์ฃผ์. (๋ ํ์ด์ฌ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ ๊ฑฐ๋ผ ํ์ด์ฌ์ผ๋ก ๋ฃ์ด์ฃผ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ถํ์ ์ปค๋ฐํ ์คํธ ํ ๊ฒธ gitignore์ ์์ ํด์ค๊ฒ์ด๋ ์๋ฌด๊ฑฐ๋ ๋ฃ์ด๋ ๋ ธ์๊ด!)
โ๏ธ ๋ก์ปฌ์ git clone ํด์ฃผ๊ธฐ
ํ๋ก์ ํธ๊ฐ ์ ์์ฑ๋๋ฐ๋ฉด, ๋ก์ปฌ์ ํด๋น ๋ ํฌ๋ฅผ clone ํด์ค์. ๋๋ ํฐ๋ฏธ๋์ ์ด์ฉํด์ ํด๋ก ํด์ฃผ์๋ค.
๋จผ์ ์์ฑ๋ ๋ ํฌ์์ Code > HTTPS ์ฃผ์๋ฅผ ๋ณต์ฌํด์ค๋ค.
ํฐ๋ฏธ๋์์ ์ํ๋ ๊ฒฝ๋ก์ git clone ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด์ ํด๋น ๋งํฌ๋ฅผ ๋ถ์ฌ์ฃผ์.
git clone https://github.com/deslog/algorithm-test.git
ls ๋ช ๋ น์ด๋ก ํด๋๊ฐ ์ ์์ฑ๋์์ ํ์ธํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ก์ปฌ์์ ํด๋น ๊ฒฝ๋ก๋ก ์ง์ ํด๋ณด๋ฉด, .git ํด๋๊ฐ ์จ๊นํด๋๋ก ์์ฑ๋์ด์๋ค. git์ด ์ฐ๋๋์ด์์์ ๋ปํ๋ค!
โ๏ธ ํ์ด์ฐธ ํ๋ก์ ํธ ์์ฑ
ํด๋น ๋ก์ปฌ ๋๋ ํ ๋ฆฌ ๋ด๋ถ์ ํ์ด์ฐธ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ , git commit ์ ํด์ค๋ณด์.
์ฌ๊ธฐ์ New Project
Location์ ๋ด๊ฐ ์ํ๋ ๊ฒฝ๋ก! ๋ฐ๋ก ๋ด๊ฐ ์๊น ๋ก์ปฌ์ ์์ฑํ repo ๊ทธ๊ฒ. ์๋ง ํด๋น ํด๋ is not Empty ๋ผ๊ณ ๋ฐ์๋ ์๋๋ฐ, ๊ทธ ์์ .gitignore, readme.md ์ด๋ฐ๊ฑฐ ๋ค์ด์์ด์ ๊ทธ๋ผ! ๊ทธ๋ฅ ์งํ์์ผ์ค๋ค.
์ง์ ์ด๋ ๊ฒ ๊ทธ๋ผ ๋ฐ๋ก ์์ฑ์๋ฃ! ์ฌ๊ธฐ์ ์ด์ python ํ์ผ์ ํ๋ ์์ฑ์์ผ์ค๋ณด์.
๋ ์ด๋ ๊ฒ test๋ผ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ํ๋ ๋ง๋ค์ด์ค๋ค, test.py ํ์ผ์ ์์ฑํด์ฃผ์๋ค.
โ๏ธ commit test (๊นํ๋ธ ํ ํฐ์ ์ ์ฐ๊ฒฐํด์ผ ์ปค๋ฐ๋๋น!)
์ ์ด์ ์ง๊ธ๊น์ง ์งํํ ๊ฒ๋ค์ commit ํด์ github์ ์ ์ฌ๋ผ๊ฐ๋์ง ํ์ธํด์ฃผ์.
git add .
git status
์ํํ์ธ ํด์ฃผ๊ตฌ
git commit -m "์ปค๋ฐ๋ฉ์์ง"
git push
ํ๊ณ ๊นํ๋ธ ๊ณ์ ์ ๋ณด / ๋น๋ฒ ์ณ์ฃผ๊ณ (์ด๊ฑฐ ์๋ํํ ์์์๋๋ฐ,, ,์ฐพ์๋ด์ผ๊ฒ ๋ฐ)
git status
์ํํ์ธ์ผ๋ก ๋ง๋ฌด๋ฆฌ
์ด๋ ๊ฒ ํด์คฌ๋ค. ์ผ๋จ push ํด์คฌ์ผ๋๊น github์์ ์ ์ฌ๋ผ๊ฐ๋ ํ์ธํด์ฃผ์.
โ ๏ธ ์ฅ, Initial commit ๋ฐ์ ์กด์ฌํ์ง ์๋๋ค. ๋ด๊ฐ ํ ์ปค๋ฐ์ด ์ฌ๋ผ๊ฐ์ง ์์๋ค! ๋จธ์ ์ผ์ธ๊ฐ
์ฌ๊ธฐ์ ์ข ๊น๋จน๊ณ ํค๋งธ์๋๋ฐ, fork๋ก ํ์ธํด๋ณด๋๊น, git Push 'main' to 'origin' ์ด ๋์ด์์ง ์์๋ค. ์๋,, ๋ฉ์ธ๋ธ๋ ์น์ ์ฌ๋ฆฌ๊ณ origin์ ๋ค์ํ๋ฒ push ํด์คฌ์ด์ผํ๋? ์๋๊ทธ๋ฌ๋? (git ์์ด์ง ์ผ๋ ๋ฐ ๋์ผ๋๊น ๊น๋จน์๋ด,,)
๐ Push 'main' to 'origin'
์ผ๋จ fork๋ก ๋ณด๋๊น main ๋ธ๋์น๋ก ์ปค๋ฐ์ ๋๋๋ฐ, ์๊ฒฉ ์ ์ฅ์์ธ ๊นํ๋ธ origin์ push๋์ง ์์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
์ด๊ฑฐ๋ณด๋ฉด, orgin/main์ ์ปค๋ฐ๋์ด์๋ ์ต์ด initial commit ๋ง๊ณ ๋ด๊ฐ ์์ฑํ ์ปค๋ฐ์ main์๋ง ์ปค๋ฐ๋์ด์๋ค. ์ด๊ฒ์ origin์ ์ปค๋ฐํด์ค์ผํ๋๊ฒ ๊ฐ๋ค.... ํ
์ฐ์ fork์์ ์งํํด๋ณด์.
์ฐ์ ํด๋น ์ปค๋ฐ ์ฐํด๋ฆญ > main > push main to origin์ ํ์.
์ ์ด๋ ๊ฒ ์๊ฒฉ์ ์ฅ์ github ๋ด๋ถ์ ์ ์ปค๋ฐ์ด ๋ค์ด๊ฐ๋ค. ์ด๊ฒ์ ์ด์ ํฐ๋ฏธ๋์์ ํ๋ฐฉ์ ํ๋ ๋ฐฉ๋ฒ์ ์์๊น?
๐ ํ ํฐ ๋ง๋ฃ!! password์ ์๋ก ๋ฐ๊ธ ๋ฐ์ ํ ํฐ ๋ค์ ์ ๋ ฅ
ํ, ๋จผ๊ฐ remote ์ ์ฅ์๋ก ์ฐ๊ฒฐํด๋ github token์ด ๋ณ๊ฒฝ๋์ด ๊ทธ๋ฐ๊ฒ ๊ฐ์๋ค. ์๋ fail๋ ์ด์ ๋ฅผ ์ฝ์ด๋ณด๋ฉด
Support for password authentication was removed on August 13, 2021.
์ด๋ ๊ฒ ๋จ๋๋ฐ, ๋ด ๊ณ์ ์ ๋ณด๊ฐ ์ญ์ ๋์๋ค๊ณ ๋จ๋๊ฒ ๊ฐ์๋ค. ๋ฐ๋ก Username์ ๋ด ๊นํ๋ธ ์์ด๋๋ฅผ ์ ๋ ฅํ๋ค์, password์ ์๋ก ๋ฐ๊ธ๋ฐ์ ํ ํฐ์ ๋ฃ์ด๋ดค๋๋ฐ, main->main ๋ธ๋์น๋ก push๊ฐ ๋์๋ค๊ณ ๋จ๋ฉด์ ๋ด๊ฐ ์ปค๋ฐํ ๋ด์ญ์ด ์๊ฒฉ ์ ์ฅ์๋ก ๋ค์ด๊ฐ๋ฐ!!!!
๊ทธ๋ผ, ๊ณ์ ์ด ์ฐ๊ฒฐ๋๊ฑด๊ฐ? ๋ค์ํด๋ณด์.
๐ ํ ํฐ ์ฐ๊ฒฐํ๊ณ git add, git commit, git push
์ง์~ last commit test ์ปค๋ฐ๋์๋ค! ๊ทธ๋์ ํ ํฐ์ ์ญ์ ํ ๊ฒ ๋๋ฌธ์ ๊นํ๋ธ ์ฐ๋์ด ์๋์ด์์ด์ ๊ทธ๋ซ๋ค๊ฑฐ์๊ตฐ~
์จ๋ ์ด๋ ๊ฒ ๊น ๋ ํฌ ์์ฑ๋!