๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

TIL/Git

๐Ÿ“š12/21(๋ชฉ) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java-Spring 1์ผ์ฐจ TIL - git ๊ธฐ์ดˆ ๋ช…๋ น์–ด, project ์‹œ์ž‘

๐Ÿ“ ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • ํ•„์ˆ˜ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด
  • git & github ๊ธฐ์ดˆ
  • ๋ณธ์บ ํ”„ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘

 

 

 

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

VsCode ํ„ฐ๋ฏธ๋„์—์„œ ์ง„ํ–‰
  * ์œˆ๋„์šฐ๋Š” ํ„ฐ๋ฏธ๋„์—์„œ bash, git bash ์ฒดํฌํ•  ๊ฒƒ

  • pwdํ˜„์žฌ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ~ root๋Š” ์ตœ์ƒ์œ„ ๊ฒฝ๋กœ(๋ฐ”ํƒ•ํ™”๋ฉด๋ณด๋‹ค-Desktop ๋” ์œ„)
  • ls (list) : ๋‚ด ํด๋” ์•ˆ์— ์žˆ๋Š” ํด๋”, ํŒŒ์ผ์„ ๋ณด์—ฌ์ค€๋‹ค.
  • ls -a (list all) : ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ๋„ ๋‹ค ๋ณด์—ฌ์ค€๋‹ค.
  • cd ํด๋”๋ช… (change directory) : Desktop ์•ˆ์— ์žˆ๋Š” ๋‹ค๋ฅธ ํด๋”๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.
    cd .. : ํ•œ ๋‹จ๊ณ„ ์œ„์˜ ํด๋”๋กœ ๊ฐ„๋‹ค. ํด๋”๋ช…/ํด๋”๋ช… ์œผ๋กœ ํ•œ ๋ฒˆ์— ๋” ๊นŠ์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
  • mkdir ํด๋”๋ช… (make directory) : ํ˜„์žฌ ๊ฒฝ๋กœ์—์„œ ํด๋”๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด
  • touch ํŒŒ์ผ๋ช… : ํ˜„์žฌ ๊ฒฝ๋กœ์—์„œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด(ํŒŒ์ผ์ด ์—†์„ ๊ฒฝ์šฐ)
    ํŒŒ์ผ์˜ ์ƒ์„ฑ๊ณผ ํŒŒ์ผ์˜ ๋‚ ์งœ, ์‹œ๊ฐ„์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น์–ด

 

 

 

๐Ÿ“ git๊ณผ github์˜ ์ฐจ์ด์ 

  • git
    ์ฝ”๋“œ ๋ณ€๊ฒฝ์  ๊ธฐ๋ก(๋ฒ„์ „ ๊ด€๋ฆฌ ๋„๊ตฌ, ํ˜•์ƒ ๊ด€๋ฆฌ ๋„๊ตฌ). ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ํ†ต์ œํ•˜๋Š” ๊ฒƒ
  • github
    ์˜จ๋ผ์ธ ๋ฐฑ์—…, ๊ณต์œ , ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•œ ์˜จ๋ผ์ธ ์ €์žฅ์†Œ

 

 

 

๐Ÿ“ git ๋ช…๋ น์–ด

  • git init : initialize ์ดˆ๊ธฐํ™”ํ•˜๋‹ค, ์ดˆ๊ธฐ ์„ธํŒ…ํ•˜๋‹ค. ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์ „์— ํ•œ ๋ฒˆ๋งŒ ์ž…๋ ฅํ•œ๋‹ค.
    * ์ •ํ™•ํ•œ ํ”„๋กœ์ ํŠธ ํด๋”(๊ฒฝ๋กœ)์—์„œ ์ž…๋ ฅํ•ด์•ผํ•จ
  • ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ช…๋ น์–ด
  • git add ํŒŒ์ผ๋ช… : ์ €์žฅํ•˜๊ธฐ ์ „์— ์ €์žฅํ•  ํŒŒ์ผ์„ ์ง€์ •ํ•œ๋‹ค, staging ํ•œ๋‹ค.
    git commit -m "๋ฉ”์‹œ์ง€" : ์‹ค์ œ๋กœ ์ €์žฅํ•œ๋‹ค, commit ํ•œ๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ์ž˜ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.
  • git status : ์ €์žฅ๋œ ํŒŒ์ผ์„ ํ™•์ธํ•œ๋‹ค. ์ €์žฅ์ด ๋˜๋ฉด ์•„๋ฌด๊ฒƒ๋„ ๋œจ์ง€ ์•Š๋Š”๋‹ค.
    * ํŒŒ์ผ๋ช…์— modified ๋นจ๊ฐ„์ƒ‰: ์ฝ”๋“œ ๋ณ€๊ฒฝ์€ ์žˆ์ง€๋งŒ ์ €์žฅ ์•ˆ ๋์Œ, ์ดˆ๋ก์ƒ‰: ์ €์žฅ ๋์Œ
  • git add . : ์ (.)์€ ํ˜„์žฌ ๋‚ด ๊ฒฝ๋กœ์—์„œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ•œ ๋ฒˆ์— ์ง€์ •ํ•œ๋‹ค. ๋ชจ๋“  ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • git log : ์ €์žฅ ๋‚ด์—ญ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • gir diff : ์ฝ”๋“œ ๋ณ€๊ฒฝ ํ™•์ธ ๊ฐ€๋Šฅ
  • git reset : ๊ณผ๊ฑฐ๋กœ ๋Œ์•„๊ฐ€๊ธฐ ๊ฐ€๋Šฅ
  • q๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋น ์ ธ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค

 

 

 

๐Ÿ“ github๋กœ ์ฝ”๋“œ ๋ฐฑ์—…ํ•˜๊ธฐ

  • github ํ™ˆํŽ˜์ด์ง€์—์„œ ์˜จ๋ผ์ธ ์ €์žฅ์†Œ(github repository)๋ฅผ ๋งŒ๋“ ๋‹ค.
  • ์—…๋กœ๋“œํ•  ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ VsCode์—์„œ ์—ด์–ด์ค€๋‹ค.
  • gir remote add origin ์ฃผ์†Œ: repository ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.(. ๋นผ๋จน์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค)
  • git branch -M main : ๊ธฐ๋ณธ๋ธŒ๋žœ์น˜๋ฅผ master > main์œผ๋กœ ๋ฐ”๊พผ๋‹ค
  • git push -u origin main : ์ ์šฉํ•˜๋ฉด git push๋งŒ ์จ๋„ ๋œ๋‹ค

 

 

 

๐Ÿ“  ์ถ”๊ฐ€๋กœ ์ˆ˜์ •๋œ ์ฝ”๋“œ github์— ๋ฐ˜์˜ํ•˜๊ธฐ - git push

  • ์ฝ”๋“œ ์ˆ˜์ • ๋ฐ ์ €์žฅํ•˜๊ธฐ
  • git add. & git commit -m "๋ฉ”์‹œ์ง€"
  • git push origin ๋ธŒ๋žœ์น˜๋ช…(ํ„ฐ๋ฏธ๋„์—์„œ ๋ณด์ด๋Š” ์ด๋ฆ„)
  • ๊ณ„์ • ์„ค์ •์ด ๋˜์–ด์žˆ์ง€ ์•Š์œผ๋ฉด, ์ปค๋ฐ‹ ํ›„์— Please tell me who you are์ด๋ผ๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ
  • git config --global user.name ์œ ์ €๋„ค์ž„  
    git config --global user.email.com  ์œ ์ €์ด๋ฉ”์ผ
    ์ด ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

๐Ÿ“  ํŒ€ํ”„๋กœ์ ํŠธ ์ง„ํ–‰๋ฐฉ๋ฒ•

  • git clone ์ฃผ์†Œ(repository) .: ๋‚ด local์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ repository๋ฅผ ๋ณต์‚ฌํ•ด ์˜จ๋‹ค.
  • git push: ๋‚ด ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์„ repository๋กœ ์—…๋กœ๋“œํ•œ๋‹ค.
  • git pull: repository์—์„œ ๋‚ด local๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์„ ๊ฐ€์ ธ์˜จ๋‹ค.

 

  โš ๏ธ git pull์„ ํ–ˆ๋Š”๋ฐ ์ถฉ๋Œ(conflict)์ด ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ

<<<<<<<<HEAD ๋‚ด ๋ณ€๊ฒฝ์‚ฌํ•ญ
=======
๊ฐ€์ ธ์˜จ ๋ณ€๊ฒฝ์‚ฌํ•ญ
>>>>>>>> 4182..

 

  ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด <<<<<<, =======, >>>>>>> ์„ธ ์ค„์€ ์ง€์›Œ์ฃผ๊ณ , ์›ํ•˜๋Š” ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝํ•œ ๋’ค push ํ•œ๋‹ค.