โœ๏ธ Today I Learned(TIL)/์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

๋ณธ์บ ํ”„ ์‹œ์ž‘๐Ÿ˜Ž๐Ÿ˜Ž๐Ÿ˜Ž + Git, Github

carrot0911 2024. 11. 4. 22:10

ํ•˜๋ฃจ ์š”์•ฝ

๋“œ๋””์–ด ์˜ค๋Š˜๋ถ€ํ„ฐ ์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Spring ํŠธ๋ž™์ด ์‹œ์ž‘๋˜์—ˆ๋‹ค!!
์•„์นจ 9์‹œ๋ถ€ํ„ฐ ์˜คํ›„ 9์‹œ๊นŒ์ง€ ์ญ‰ ์ด์–ด์ง€๋Š”... 12์‹œ๊ฐ„ ๊ณต๋ถ€๋ผ๋Š” ๊ฒƒ์„ ๋งˆ์ฃผํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ์˜ค์ „์— ๋ณธ์บ ํ”„์— ๋Œ€ํ•œ OT๋ฅผ ๋“ฃ๊ณ  ๋‚˜๋‹ˆ๊นŒ ์˜ค์ „์ด ์‚ญ์ œ๋˜์–ด ์žˆ์—ˆ๋‹ค.. ๐Ÿ˜ฎ๐Ÿ˜ฎ

OT์—์„œ๋Š” ์ฃผ์˜ ์‚ฌํ•ญ, ํ›ˆ๋ จ์žฅ๋ ค๊ธˆ ๋“ฑ๋“ฑ ํ•„์š”ํ•œ ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ ๋‹ด๋‹น ๋งค๋‹ˆ์ €๋‹˜๊ป˜์„œ ์„ค๋ช…์„ ํ•ด์ฃผ์…จ๊ณ , ๊ณง๋ฐ”๋กœ ์ด์–ด์„œ Chapter 1. ๋ฏธ๋‹ˆํ”„๋กœ์ ํŠธ์˜ ์ง„ํ–‰์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ์…จ๋‹ค.
๋ณธ์บ ํ”„ ์ฒซ ์ฃผ๋ถ€ํ„ฐ ํ”„๋กœ์ ํŠธ๋ผ๊ณ  ํ•ด์„œ ๊ฒ์„ ๋จน์—ˆ๋Š”๋ฐ ๋‹คํ–‰ํžˆ ๋‚ด๊ฐ€ ์‚ฌ์ „ ์บ ํ”„๋™์•ˆ ๋ฐฐ์› ๋˜ ์›น ์ข…ํ•ฉ ๊ฐœ๋ฐœ ๊ฐ•์˜๋ฅผ ํ† ๋Œ€๋กœ ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ธˆ์š”์ผ์— ๋ฐœํ‘œํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜€๋‹ค.

์ƒˆ๋กœ ๋งŒ๋‚œ ํŒ€์›๋“ค๊ณผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž๊ธฐ์†Œ๊ฐœ๋ฅผ ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์•ž์„œ S.A๋ผ๋Š” ๊ฒƒ์„ ์ž‘์„ฑํ–ˆ๋‹ค.
๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ๊ณ„ํš์„œ์˜ ๋Š๋‚Œ์ด์—ˆ๋‹ค!
ํŒ€๋ช…, ํ”„๋กœ์ ํŠธ๋ช…, ์—ญํ•  ๋ถ„๋‹ด, ์™€์ด์–ด ํ”„๋ ˆ์ž„, ๊ฐœ๋ฐœ์ผ์ • ๋“ฑ๋“ฑ์„ ํŒ€์›๋“ค๊ณผ ์ƒ์˜ํ•ด์„œ ์ž‘์„ฑํ•˜๊ณ  ๋ณธ๊ฒฉ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.

์ ์‹ฌ์„ ๋จน๊ณ  ๋‚˜์„œ 2์‹œ์—๋Š” Git & Github์— ๋Œ€ํ•ด์„œ ํŠœํ„ฐ๋‹˜๊ป˜์„œ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๋Š” ์„ธ์…˜ ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค.

์„ธ์…˜์ด ๋๋‚œ ํ›„, ๋‚˜์™€ ํŒ€์› 1๋ถ„์ด ๊ฐ™์ด ๋ฉ”์ธ ํŽ˜์ด์ง€๋ฅผ ๋‹ด๋‹นํ•ด์„œ ๋ฉ”์ธ ํŽ˜์ด์ง€์˜ ๋ผˆ๋Œ€ HTML๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋ง‰์ƒ ๋งŒ๋“ค๊ณ  ๋ณด๋‹ˆ ํŽ˜์ด์ง€๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ๋ˆˆ์— ์ž˜ ๋“ค์–ด์˜ค์ง€ ์•Š์•˜๋‹ค....
๊ทธ๋ž˜์„œ ๋‹ค์‹œ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•˜์˜€๊ณ .. ์˜ˆ์‹œ์— ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋ˆˆ์— ์ž˜ ๋ณด์ด๋„๋ก ์™€์ด์–ด ํ”„๋ ˆ์ž„์„ ์ƒˆ๋กœ ๋””์ž์ธํ–ˆ๋‹ค!

์ด๊ฒƒ์ด ๋ฉ”์ธ ํŽ˜์ด์ง€์˜ ์ตœ์ข… ์™€์ด์–ด ํ”„๋ ˆ์ž„์ด๋‹ค!!
์™€์ด์–ด ํ”„๋ ˆ์ž„์„ ํ† ๋Œ€๋กœ ํŒ€์›๋ถ„์ด ์ƒ๋‹จ ๋‚ด๊ฐ€ ํ•˜๋‹จ์„ ๋‹ด๋‹นํ•ด์„œ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค!

 

Git & Github ๋ฟŒ์‹œ๊ธฐ ๐Ÿ˜Ž 

ํ•„์ˆ˜ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด

pwd (print working directory)
ํ˜„์žฌ ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๋Š” ํด๋”๋ฅผ ๋ณด์—ฌ๋‹ฌ๋ผ๋Š” ๋œป์ด๋‹ค.

โœ”๏ธ ์ฐธ๊ณ 

~ ๋Š” Home(ํ™ˆ)์ด๋ผ๋Š” ๊ฒฝ๋กœ์ด๋ฉฐ, ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ๋ฐ์Šคํฌํƒ‘๋ณด๋‹ค ๋” ์ƒ์œ„์˜ ํด๋”๋ฅผ ๋งํ•œ๋‹ค.

ls
๋‚ด ํด๋” ์•ˆ์— ์žˆ๋Š” ํด๋” & ํŒŒ์ผ ๋‚ด์—ญ๋“ค์„ ๋ณด์—ฌ์ค€๋‹ค.


ls - a (list all)
์ˆจ๊ฒจ์ง„ ํŒŒ์ผ(๋ณดํ†ต .์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค.)๋„ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.


cd ํด๋”๋ช… (change directory)
ls ๋ช…๋ น์–ด์—์„œ ํ™•์ธ๋œ ํด๋”๋กœ ์ด๋™ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋งˆ์น˜ ๋ฐ์Šคํฌํƒ‘์˜ ํด๋”๋ฅผ ๋”๋ธ” ํด๋ฆญํ•ด์„œ ๋“ค์–ด๊ฐ„ ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ์ด๋‹ค.

  • .. : ํ•œ ๋‹จ๊ณ„ ์œ„์˜ ํด๋”๋ผ๋Š” ๋œป์ด๋‹ค.
  • ํด๋”๋ช…/ํด๋”๋ช…์œผ๋กœ ํ•œ ๋ฒˆ์— ๋” ๊นŠ์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.


mkdir ํด๋”๋ช… (make directory)
ํ˜„์žฌ ๊ฒฝ๋กœ์—์„œ ํด๋”๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.


touch ํŒŒ์ผ๋ช…
ํ˜„์žฌ ๊ฒฝ๋กœ์—์„œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

โœ”๏ธ ์ฐธ๊ณ 

์ •ํ™•ํžˆ๋Š” ํŒŒ์ผ์˜ ์ƒ์„ฑ๊ณผ ํŒŒ์ผ์˜ ๋‚ ์งœ, ์‹œ๊ฐ„์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

 

Git & Github ๊ฐœ๋…

Git

์ฝ”๋“œ ๋ณ€๊ฒฝ์  ๊ธฐ๋ก์ด๋‹ค.
๋ฒ„์ „ ๊ด€๋ฆฌ ๋„๊ตฌ (ํ˜•์ƒ ๊ด€๋ฆฌ ๋„๊ตฌ)
์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ํ†ต์ œํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (๋ฉด์ ‘์šฉ)

Github

๋ฐฑ์—…๊ณผ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์˜จ๋ผ์ธ ์ฝ”๋“œ ์ €์žฅ์†Œ์ด๋‹ค.
Girhub์œผ๋กœ ๋ฐฑ์—…, ๊ณต์œ , ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

Git ํ•„์ˆ˜ ๋ช…๋ น์–ด

git init

์ฝ”๋“œ ๊ด€๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.
initialize(์ดˆ๊ธฐํ™”ํ•˜๋‹ค, ์ดˆ๊ธฐ ์„ธํŒ…ํ•˜๋‹ค)์˜ ์ค„์ž„๋ง.
ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์ „ ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค. → ์—ฌ๋Ÿฌ ๋ฒˆ ์ž…๋ ฅํ•œ๋‹ค๊ณ  ๋ฌธ์ œ๊ฐ€ ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค.
์ •ํ™•ํ•œ ํ”„๋กœ์ ํŠธ ํด๋”(๊ฒฝ๋กœ)์—์„œ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค. → ์ž˜๋ชปํ•˜๋ฉด ๋ฐ์Šคํฌํƒ‘ ์ „์ฒด ํŒŒ์ผ, ํด๋”๊ฐ€ ๊ธฐ๋ก๋  ์ˆ˜ ์žˆ๋‹ค.

git add & commit

git add ํŒŒ์ผ๋ช…
git commit -m "๋ฉ”์‹œ์ง€ ์ž‘์„ฑ" → ๋ฉ”์‹œ์ง€ ๋ถ€๋ถ„์€ ๋‚ด๊ฐ€ ๋ฌด์Šจ ์ฝ”๋“œ๋ฅผ ์งฐ๋Š”์ง€ ์ž์„ธํ•˜๊ฒŒ ์ ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์ €์žฅ ๋ช…๋ น์–ด๊ฐ€ 2๊ฐœ์ธ ์ด์œ 
git add ํŒŒ์ผ๋ช…
→ ์ €์žฅํ•˜๊ธฐ ์ „ ์ €์žฅํ•  ํŒŒ์ผ์„ ์ง€์ •ํ•œ๋‹ค.

git commit -m "๋ฉ”์‹œ์ง€ ์ž‘์„ฑ"์‹ค์ œ๋กœ ์ €์žฅํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

ํŒŒ์ผ์„ ํ•œ ๋ฒˆ์— ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•
git add .

git commit -m "๋ฉ”์‹œ์ง€ ์ž‘์„ฑ"

git status

์ €์žฅ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

git log

์ €์žฅ ๋‚ด์—ญ์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.
commit ๋ฉ”์‹œ์ง€๋กœ ์ฝ”๋“œ ๋ณ€๊ฒฝ์ ์„ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ‚ค๋ณด๋“œ q๋กœ ๋น ์ ธ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

Github์œผ๋กœ ์ฝ”๋“œ ๋ฐฑ์—…ํ•˜๊ธฐ

github์˜ ์‚ฌ์šฉ ์ด์œ  : ๋ฐฑ์—…, ๊ณต์œ , ํ˜‘์—…

  1. ์˜จ๋ผ์ธ ์ €์žฅ์†Œ(github repository)๋ฅผ ๋งŒ๋“ค๊ธฐ
  2. ๋‚ด ์ฝ”๋“œ๋ฅผ Github repository๋กœ ์—…๋กœ๋“œํ•˜๊ธฐ
  3. ์ถ”๊ฐ€๋กœ ์ˆ˜์ •๋œ ์ฝ”๋“œ github์— ๋ฐ˜์˜ํ•˜๊ธฐ - git push

์ฒซ ์—…๋กœ๋“œ ์‹œ 3๊ฐœ์˜ ๋ช…๋ น์–ด
git remote add origin <github ์ฃผ์†Œ>

git branch -M main
git push -u origin main

 

Github ํ˜‘์—…ํ•˜๊ธฐ + ์ถฉ๋Œ ํ•ด๊ฒฐํ•˜๊ธฐ

  1. ์ดˆ๊ธฐ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
  2. github ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ
  3. ์ฝ”๋“œ github์— ์˜ฌ๋ฆฌ๊ธฐ (git push)

ํŒ€์žฅ์ด repository๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ˜‘๋ ฅ์ž(collaborator)๋กœ ํŒ€์›๋“ค์„ ๋“ฑ๋กํ•œ๋‹ค.
์ดˆ๋Œ€๋ฐ›์€ ํŒ€์›๋“ค์€ git clone ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•ด ์˜จ๋‹ค.
ํŒ€์›๋“ค๋„ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  github์— ์˜ฌ๋ฆฐ๋‹ค. (git push)
๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋ณ€๊ฒฝํ•œ ์ฝ”๋“œ๋ฅผ ๋‚ด ์ฝ”๋“œ์—๋„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ git pull ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด๋ฏธ git push๋ฅผ ํ•˜๊ณ  ๋‚ด๊ฐ€ ์ด์–ด์„œ git push๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ git pull์„ ๋จผ์ € ์‹คํ–‰ํ•˜๊ณ  git push๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค!

์ถฉ๋Œ(Conflict) ํ•ด๊ฒฐํ•˜๊ธฐ
์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” ๊ฐ™์€ ํŒŒ์ผ์˜ ๊ฐ™์€ ์œ„์น˜์— ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


์ด ์ƒํƒœ์—์„œ git pull์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์ถฉ๋Œ๋œ ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.
์—ฌ๊ธฐ์„œ <<<<< HEAD ๋ถ€๋ถ„๊ณผ =======, >>>>>>>... ๋ถ€๋ถ„์„ ์‚ญ์ œํ•˜๊ณ  ์›ํ•˜๋Š” ์ฝ”๋“œ๋กœ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค.

์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•œ ํ›„ ๋‹ค์‹œ git push๋ฅผ ํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ์ด ๋œ๋‹ค.