Git & Github

๋ˆ„๋ฆฌยท2022๋…„ 9์›” 28์ผ
0
post-thumbnail

๐Ÿ—“ 2022.

๐ŸŽ Git์ด๋ž€?

Version Control System(VCS)์ด๋‹ค.
Version : ์–ด๋–คํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜์ •, ๊ฐœ์„ ํ•˜์—ฌ ์™„์„ฑํ•œ๊ฒƒ. ์ด์ „๊ณผ ๋‹ค๋ฅธ ๋ณ€ํ™”๋“ค์„ ๊ตฌ๋ถ„ํ•œ๋‹ค.
ํŒŒ์ผ์„ ๊ณ„์†์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ•˜๋ฉด ๋ช…ํ™•ํžˆ ๋ณ€ํ™”๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ๋„ ์–ด๋ ต๊ณ  ์ตœ์ข…ํŒŒ์ผ์„ ํ™•์ธํ•˜๊ธฐ๋„ ์‰ฝ์ง€์•Š๋‹ค >> ๋ฌธ์„œ์ง‘๊ณ„ํ‘œ๋ผ๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ ์•ˆ์—์„œ ์ˆ˜์ •์˜ ์ด๋ ฅ์„ ๋‚จ๊ธฐ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€ํ™”ํ•˜๊ณ  ์žˆ๋‹ค.

์ฝ”๋“œ๋˜ํ•œ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ•œ๋‹ค.

  • ์ˆ˜์ •ํ• ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ์„ ์ƒˆ๋กœ ๋งŒ๋“ค๋ฉด ๊ด€๋ฆฌ๊ฐ€ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ
  • ์–ธ์ œ๋“  ์ด์ „ ๋ฒ„์ „์˜ ์ฝ”๋“œ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ
  • ์–ด๋–ค ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ (๋‹ค๋ฅธ๊ฐœ๋ฐœ์ž์™€์˜ ์†Œํ†ต์— ์š”์ดํ•˜๋‹ค)
  • ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‘๊ณ  ์—ฌ๋Ÿฌ๋ช…์˜ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ

Git ์™ธ์—๋„ ๋ฒ„์ „๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค์€ ๋‹ค์–‘ํ•˜์ง€๋งŒ, ๊ฐ€์žฅ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— git์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ๋ณดํŽธ์„ฑ์— ์ข‹๋‹ค

๐ŸŽ Github์ด๋ž€?

  • Git์„ ์‚ฌ์šฉํ•œ ํ”„๋กœ์ ํŠธ๋“ค์˜ ์ €์žฅ์†Œ์ด๋‹ค.
    ๋งŒ์•ฝ Github์ด ์—†์—ˆ๋‹ค๋ฉด ์ด๋ฉ”์ผ usb๋“ฑ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฐฉ๋ฒ•๋“ค๋กœ ์‚ฌ์šฉํ–ˆ์–ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค.
  • ๊ฐœ๋ฐœ์ž๋“ค์˜ ์†Œ์…œ ๋„คํŠธ์›Œํฌ ๊ณต๊ฐ„์ด๋‹ค

์š”์•ฝํ•˜๋ฉด
Git : ํ”„๋กœ์ ํŠธ์˜ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ๋„์™€์ฃผ๋Š” ์‹œ์Šคํ…œ
GitHub : Git์„ ์ด์šฉํ•ด ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ•œ ํ”„๋กœ์ ํŠธ๋“ค์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค

๐ŸŒ ๊ธฐ๋ณธ์ ์ธ ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด

  1. Git init
    git ์ €์žฅ์†Œ ์ƒ์„ฑ / ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ •๋ณด ์ƒ์„ฑ
    ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์‹ถ์€ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด๋œ๋‹ค

  2. Git status : git ์ƒํƒœํ™•์ธ
    ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š” ์ƒํƒœ๋ฅผ ํ™•์ผํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด์ด๋‹ค

  3. Git add : ํŒŒ์ผ ์ˆ˜์ • ์ด๋ ฅ ๊ธฐ๋ก ์ค€๋น„
    ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๋Š” ํ–‰์œ„๋กœ ์ƒ๊ฐ ํ•˜๋ฉด ๋œ๋‹ค. ์ฝ”๋“œ์— ์ด๋ ฅ์„ ๋ฐ”๋กœ ๋‚จ๊ธฐ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
    ์ˆ˜์ •ํ•œ ํŒŒ์ผ์˜ ์ด๋ ฅ์„ ๋‚จ๊ธธ ์ค€๋น„๋ฅผ ํ•˜๋Š” ๋ช…๋ น์–ด
    ํŠน์ •ํŒŒ์ผ๋งŒ ์ด๋ ฅ์„ ๋‚จ๊ธฐ๊ณ  ์‹ถ์„ ๋•Œ : git add[ํŒŒ์ผ์ด๋ฆ„]
    ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์˜ ๋ชจ๋“  ์ด๋ ฅ์„ ๋‚จ๊ธฐ๊ณ  ์‹ถ์„ ๋•Œ : git add.

  4. Git commit : ํŒŒ์ผ ์ˆ˜์ • ์ด๋ ฅ๊ธฐ๋ก
    ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธด ๊ฒƒ๋“ค์„ ์‹ค์ œ ๊ตฌ๋งคํ•˜๋Š” ํ–‰์œ„๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
    ์ˆ˜์ •ํ•œ ํŒŒ์ผ์˜ ์ด๋ ฅ์„ ๋‚จ๊ธฐ๋Š” ๋ช…๋ น์–ด
    ํ•œ ์ค„๋กœ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ๋‚จ๊ธฐ๊ณ  ์‹ถ์„๋•Œ : git commit -m "๋ฉ”์„ธ์ง€"
    ์—ฌ๋Ÿฌ์ค„๋กœ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ๋‚จ๊ธฐ๊ณ  ์‹ถ์„๋•Œ : git commit {

  5. Git log : commit ์ด๋ ฅ ํ™•์ธ
    ๊ตฌ๋งค ๊ธฐ๋ก์„ ํ™•์ธํ•˜๋Š” ํ–‰์œ„๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.(์˜์ˆ˜์ฆ)
    ๋‚จ๊ฒจ์ง„ ์ด๋ ฅ๋“ค์„ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด
    * git log

  6. Git push : ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์—…๋กœ๋“œ
    ์ด๋ ฅ์„ ๋‚จ๊ธด ์ฝ”๋“œ๋“ค์„ github์— ์˜ฌ๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด

๐ŸŒ github์— repository ์—…๋กœ๋“œ ํ•˜๊ธฐ

1. ํ„ฐ๋ฏธ๋„์„ ์—ด์–ด ์ €์žฅํ•˜๊ณ  ์‹ถ์€ ์œ„์น˜์— ์ƒˆ๋กœ ํด๋”๋ฅผ ์ƒ์„ฑํ•œ๋‹ค


๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด cd๋กœ ์ €์žฅํ•  ์œ„์น˜๋กœ ์ด๋™ํ•œ๋‹ค
mkdir๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด test ํด๋”๋ฅผ ์ƒ์„ฑ

2. git init์œผ๋กœ git๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ค€๋น„๋ฅผ ํ•œ๋‹ค


ํ•ด๋‹น testํด๋”์—์„œ git init ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด ls-al์„ ์ž…๋ ฅํ•˜๋ฉด ํ˜„์žฌ ๊ฒฝ๋กœ๋‚ด์˜ ํŒŒ์ผ๋ชฉ๋ก๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ,
.gitํŒŒ์ผ์ด ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜์–ด์•ผ git ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค

3. ํ•ด๋‹น ํด๋”์— ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค


touch๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด์™€ ํŒŒ์ผ๋ช….ํ™•์žฅ์ž๋ฅผ ์ž…๋ ฅํ•ด ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ 
vi๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด์™€ ์ˆ˜์ •ํ•  ํŒŒ์ผ๋ช….ํ™•์žฅ์ž๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํŽธ์ง‘๊ธฐ๊ฐ€ ์ƒ์„ฑ๋˜๋Š”๋ฐ

i๋ฅผ ์ž…๋ ฅํ•˜๋ฉด --INSERT--๋กœ ๋ฐ”๋€Œ๋ฉฐ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค
์ˆ˜์ •์„ ์™„๋ฃŒํ•˜๋ฉด esc๋ฅผ ๋ˆ„๋ฅธํ›„ :wq๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํŽธ์ง‘๊ธฐ๊ฐ€ ๋‹ซํžˆ๊ณ  ํ„ฐ๋ฏธ๋„๋กœ ๋Œ์•„๊ฐ„๋‹ค

4. git์— commit ํ•˜๊ธฐ ์ „์— add๋กœ ์ค€๋น„๋ฅผ ์‹œ์ผœ์ฃผ์–ด์•ผ ํ•œ๋‹ค


git add ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ํŒŒ์ผ ์ด๋ ฅ์„ ๋‚จ๊ธธ ์ค€๋น„๋ฅผ ํ•˜๊ณ 
git status ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š” ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ๋‹ค. ์•„์ง commit ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋ฉ”์„ธ์ง€์™€ ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

5. git ์— commitํ•˜๊ณ  ๊ธฐ๋ก์„ ํ™•์ธํ•œ๋‹ค


git commit -m ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ํ•œ์ค„๋กœ ๊ฐ„๋‹จํ•œ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์“ด๋‹ค
commit๋œ ๊ธฐ๋ก์„ ํ™•์ธํ•˜๋ ค๋ฉด git log ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค

6. github์—์„œ ์ƒˆ repository ์ƒ์„ฑ


repository name์€ ๋‚ด๊ฐ€ ์„ค์ •ํ•œ ํŒŒ์ผ๋ช…์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค
์ƒ์„ฑํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฃผ์†Œ๊ฐ€ ์ƒ์„ฑ๋˜๋Š”๋ฐ ์ด์ฃผ์†Œ๋ฅผ ์ด์šฉํ•ด ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒŒ๋œ๋‹ค

7. ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ™•์ธํ•œ๋‹ค


git remote add origin github์—์„œ ์ƒ์„ฑํ•œ repository์ฃผ์†Œ ๋ฅผ ์ž…๋ ฅํ•˜๊ณ 
git remote ๋ฅผ ์ž…๋ ฅํ•ด ์ €์žฅ์†Œ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜จ๋‹ค
git remote --v ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ €์žฅ์†Œ ๋ชฉ๋ก๊ณผ url๊นŒ์ง€ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค

8. github์— push ํ•œ๋‹ค


git push origin + ๋ธŒ๋žœ์น˜๋ช…์„ ์ž…๋ ฅํ•ด github์— ์ƒ์„ฑํ•œ repository์— ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค

๋งŒ์•ฝ push์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚  ๊ฒฝ์šฐ github token ์„ ์ƒ์„ฑํ•ด์„œ ๋‹ค์‹œ ํ„ฐ๋ฏธ๋„์—์„œ ๋กœ๊ทธ์ธ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค
profile
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€