Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

Git

[Github] ๋งจ๋‚  ๊นŒ๋จน์–ด์„œ ์ •๋ฆฌํ•˜๋Š” git repo ์ƒ์„ฑ ๋ฐฉ๋ฒ•, github ์—ฐ๋™ ๋ฐฉ๋ฒ•

๊ฐ์ž ๐Ÿฅ” 2024. 5. 4. 00:57
๋ฐ˜์‘ํ˜•

์ง€์ด์ด์ด์ธ์งœ ์˜ค๋žœ๋งŒ์— ํฌ์ŠคํŒ…. ํšŒ์‚ฌ๋ฅผ ๋‹ค๋‹ˆ๋ฉด์„œ ๊ฐœ๋ฐœ์„ 1๋…„ ๋ฐ˜์ •๋„ ์†์„ ๋†“๋‹ค๋ณด๋‹ˆ, ๊ฐœ๋ฐœ์„ ํ•˜๊ณ ์‹ถ์„ ๋•Œ๊ฐ€ ๋‹ค ์žˆ๋‹ค. ํŠนํžˆ,, ์ •๋ง ๋“œ๋ฌผ๊ฒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ ์‹ถ์–ด์กŒ๋‹ค. (๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ์‹ฌ์‹ฌํ’€์ด๋•…์ฝฉ ๋†€์ด๋ฅผ ํ•˜๊ณ ์‹ถ๋‹ฌ๊นŒ)

์ด์ œ๋Š” swift์™€๋Š” ๋ฉ€์–ด์ง„ ๋‚˜์ด๊ธฐ์—, python์œผ๋กœ ์ƒˆ๋กญ๊ฒŒ ์ค€๋น„ํ•ด๋ณด๋ ค๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ, github์™€ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊นŒ๋จน์–ด์„œ ์•„์˜ˆ ํฌ์ŠคํŒ…์œผ๋กœ ๋ฐ•์ œํ•ด๋ฒ„๋ฆฌ๋ ค๊ณ  ํ•œ๋‹ค.

๋‚˜๋Š” ๋ณดํ†ต ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋Œ€๋กœ ํ™˜๊ฒฝ๊ตฌ์„ฑ์„ ํ•œ๋‹ค. ๋ญ ๋กœ์ปฌ์—์„œ ๋จผ์ € ๋ ˆํฌ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋„ ๋งŽ๊ฒ ์ง€๋งŒ ๋‚œ ์ด๊ฒŒ ์ ค ํŽธํ–ˆ๋‹ค.

  1. github์—์„œ repo ์ƒ์„ฑ
  2. git clone์œผ๋กœ ํ•ด๋‹น repo ๋กœ์ปฌ์— ๋ณต์ œ
  3. 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 ์ปค๋ฐ‹๋˜์—ˆ๋‹ค! ๊ทธ๋™์•ˆ ํ† ํฐ์„ ์‚ญ์ œํ•œ ๊ฒƒ ๋–„๋ฌธ์— ๊นƒํ—ˆ๋ธŒ ์—ฐ๋™์ด ์•ˆ๋˜์–ด์žˆ์–ด์„œ ๊ทธ๋žซ๋–ค๊ฑฐ์˜€๊ตฐ~ 

 

์จŒ๋“  ์ด๋ ‡๊ฒŒ ๊นƒ ๋ ˆํฌ ์ƒ์„ฑ๋! 

๋ฐ˜์‘ํ˜•