๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋‚˜์˜ ๋ชจ์–‘

007 | Git & Github ๋ณธ๋ฌธ

SEB/TIL

007 | Git & Github

kexon 2022. 7. 1. 22:43

๐Ÿ’™ ๊นƒ๊ณผ ๊นƒํ—ˆ๋ธŒ

๐Ÿค Git

  • ์†Œ์Šค ์ฝ”๋“œ์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „๊ด€๋ฆฌ์‹œ์Šคํ…œ(ํ”„๋กœ๊ทธ๋žจ)
  • ๊นƒ์ด ํ•˜๋Š” ์ผ(๊นƒ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ)
    • ์†Œ์Šค์ฝ”๋“œ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ถ”์  => ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ ํŒŒ์ผ์˜ ๋ฒ„์ „์„ ๊ด€๋ฆฌ
    • ๋ฐฑ์—…
    • ํ˜‘์—…

๐Ÿค Github

  • Git Repository๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค => ์›๊ฒฉ ์ €์žฅ์†Œ ๊ธฐ๋Šฅ ์ œ๊ณต

๐Ÿค ๊นƒ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—! ๊ผญ! ์•Œ์•„์•ผ ํ• ! ๋ชจ๋ฅด๋ฉด ์†ํ•ด์ธ! ์šฉ์–ด

  • Git Repository: ์ €์žฅ์†Œ. ๊ทผ๋ฐ ํด๋”/ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š”. ๊ทธ๋ฆฌ๊ณ  Git์œผ๋กœ ๊ด€๋ฆฌ๋จ
  • Remote Repository: ์›๊ฒฉ(์˜จ๋ผ์ธ ์„œ๋ฒ„) ์ €์žฅ์†Œ. ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ•จ๊ป˜ ๊ณต์œ  ๊ฐ€๋Šฅ
  • Local Repository: ๊ฐœ์ธ(๋‚ด ์ปดํ“จํ„ฐ) ์ €์žฅ์†Œ

๐Ÿค  Git workflow

  • forkclone: ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ž‘์—…๋ฌผ์„ ๋‚ด ๋กœ์ปฌ๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์Œ
  • add, commit, push: ์ž‘์—…๋ฌผ์„ ์›๊ฒฉ(์˜จ๋ผ์ธ ์„œ๋ฒ„) ์ €์žฅ์†Œ์— ์—…๋กœ๋“œ
  • pull request: ์ƒ๋Œ€ ํ˜‘์—…์ž์—๊ฒŒ ์™„์„ฑ๋œ ๋‚˜์˜ ์ž‘์—…๋ฌผ์„ ์ทจํ•ฉํ•ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญ
  • merge: ์ƒ๋Œ€์™€ ๋‚˜์˜ ์ž‘์—…๋ฌผ์„ ์ทจํ•ฉ

๐Ÿ’™ SSH

  • Secure Shell์˜ ์ค„์ž„๋ง๋กœ, ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋œ Shell ์ ‘์†
  • CLIํ™˜๊ฒฝ(ํ„ฐ๋ฏธ๋„)์—์„œ ๋‹ค๋ฅธ PC์— ์ ‘์†ํ•˜๊ฑฐ๋‚˜ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ
  • ๋น„๋Œ€์นญํ‚ค๋กœ ์‚ฌ์šฉ์ž ์ธ์ฆ

๐Ÿค SSH ๋“ฑ๋ก

1. ํ‚ค ์ƒ์„ฑ

ssh-keygen
  • ๊ฒฝ๋กœ ~./ssh./์— id_rsa, id_rsa.pub ์ƒ์„ฑ
    • id_rsa: ๊ฐœ์ธํ‚ค(Private Key), ๋น„๋ฐ€ํ‚ค(Secret Key)
    • id_rsa.pub: ๊ณต๊ฐœํ‚ค(Public Key)

2. ๊ณต๊ฐœํ‚ค ๋ณต์‚ฌ

cat ~/.ssh/id_rsa.pub

3. ๊ณต๊ฐœํ‚ค ๋“ฑ๋ก

  • Github > Settings > SSH and GPG keys > New SSH key > Add SSH key
  • Title ์ ๊ณ  Key์— ๊ณต๊ฐœํ‚ค ๋ณต์‚ฌํ•œ ๊ฒƒ์„ ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ๋จ

๐Ÿ’›  ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • ๊นƒ ์›Œํฌํ”Œ๋กœ์šฐ ๊ฐ™์ด ์‹ค์Šตํ•˜๋Š” ๋‘๋ฒˆ์งธ ํŽ˜์–ดํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ–ˆ๋‹ค.
  • ๋‚˜๋Š” ์•„์ง ๊นƒ์ด๋ž‘ ๋ฐ๋ฉด๋ฐ๋ฉดํ•ด์„œ ๊ฑฑ์ •์ด์—ˆ๋Š”๋ฐ ์˜ค๋Š˜ ๊ฐ™์ด ์‹ค์Šตํ•˜๋ฉด์„œ ์„œ๋กœ ๊ฐ€์ง„ ์ง€์‹๋“ค์„ ๋‚˜๋ˆ„๊ณ , ๋ถ€์กฑํ•œ ๊ฒƒ์€ ๋ณด์™„ํ•˜๊ณ  ์†Œํ†ตํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ณต๋ถ€๊ฐ€ ๋งŽ์ด ๋๋‹ค. ๋˜ ์„ค๋ช…๋„ ์ž˜ ํ•˜์‹œ๊ณ  ์ž˜ ๋“ค์–ด์ฃผ์‹œ๊ณ  ํ•ด์„œ ํŽธ์•ˆํ•˜๊ฒŒ ์ง„ํ–‰๋˜์–ด์„œ ์ข‹์•˜๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณด๋‹ˆ ์ƒํ™ฉ๊ณผ ๊ถ๊ทน์ ์œผ๋กœ ๋ชฉํ‘œ๋กœ(?)ํ•˜๋Š” ๋ฐ”๊ฐ€ ๋น„์Šทํ•ด์„œ ์‹ ๊ธฐํ–ˆ๋‹ค. ๋ณด๋‚ด์ฃผ์‹  ํ”ผ๋“œ๋ฐฑ์— ๊ณต๊ฐ์ด ๋งŽ์ด ๋๊ณ , ๋” ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๐Ÿ’š ๊ถ๊ธˆํ–ˆ๋Š”๋ฐ ์•Œ๊ฒŒ ๋œ ๊ฒƒ

Q1. git init์„ ํ•˜๋ฉด .git์ด ์ƒ๊ธฐ๋ฉด์„œ ๊นƒ์ด ์ถ”์ ํ•˜๋ฉด์„œ ๊ด€๋ฆฌ๋ฅผ ๋ฐ›๊ฒŒ ๋จ. ๊ทผ๋ฐ ์™œ ํŒŒ์ผ๋“ค์ด Untracked files์— ์˜ฌ๋ผ๊ฐ€์žˆ๋Š”์ง€?

A1. git init์€ ๋ช…๋ น์–ด๊ฐ€ ์•„๋‹Œ, ํŠน์ • ํŒŒ์ผ์„ ๊นƒ์˜ ๊ด€๋ฆฌ ํ•˜์— ๋‘๊ฒ ๋‹ค๋Š” ์„ ์–ธ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒํƒœ๋Š” ๊ฐ€์žฅ ์ดˆ๊ธฐ ์ƒํƒœ์ธ Untracked files์— ์žˆ๋Š” ๊ฒƒ

 

Q2. clone vs pull ๊ธฐ๋Šฅ์ด ๋น„์Šทํ•œ ๊ฒƒ(remote -> local ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์—์„œ) ๊ฐ™์€๋ฐ ์ฐจ์ด์ !

A2. clone์€ ์ƒ๋Œ€๋ฐฉ์˜ ์ž‘์—…๋ฌผ์„ ๋‚ด ์ €์žฅ์†Œ๋กœ ๋ณต์ œํ•˜๋Š” ๊ฒƒ(์ƒ๋Œ€ ์ž‘์—…๋ฌผ์ด ๋‚˜์—๊ฒŒ ์—†์Œ)์ด๊ณ , pull์€ ์ž‘์—…๋ฌผ์ด ์ด๋ฏธ ์žˆ์–ด์„œ ์ˆ˜์ • ์ƒํƒœ๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ 

๐Ÿ’œ Today was ...

  • ์„ค์น˜ ์ค‘์— ๋ญ๊ฐ€ ์ž˜ ์•ˆ๋ผ์„œ ์ด์Šˆ์‰์–ด๋ง์„ ํ–ˆ๋Š”๋ฐ ํ”ผ๋“œ๋ฐฑ๋„ ์—„์ฒญ ๋น ๋ฅด์‹œ๊ณ  ์•„์ฃผ ์นœ์ ˆํ•˜๊ฒŒ ๋‹ต๋ณ€์ฃผ์‹  ๊ต์œก ๋‹ด๋‹น์ž๋ถ„ ์งฑ!!! ์‹ค์‹œ๊ฐ„ ์„ธ์…˜์—์„œ๋„ ์ฑ„ํŒ…์œผ๋กœ ๋‹ต๋ณ€๋„ ์ฃผ์‹œ๊ณ ~ ๋น„๋‹จ ์ด ๋ถ„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋“ค ์—ด์ •์ ์œผ๋กœ ๋„์™€์ฃผ๋ ค๊ณ  ํ•˜์…”์„œ ์ฐธ ๊ฐ์‚ฌํ•˜๋‹ค.
  • ํŽ˜์–ด๊ฐ€ ๋๋‚˜๊ณ  ํ•œ์ธต ๋‚˜์•„์ง„ ์ดํ•ด๋„์— ๋‚˜ ํ˜ผ์ž ๊นƒ&๊นƒํ—ˆ๋ธŒ๋ž‘ ๋‚ด์ ์นœ๋ฐ€๊ฐ ๋Š๊ผˆ๋‹ค. ์˜ˆ์ „์—” ๋ด๋„ ๋ชจ๋ฅด๊ฒ ๊ณ  ์Ÿ์•„์ง€๋Š” ๋ฌด์ˆ˜ํ•œ ์ •๋ณด๋“ค์— ์งˆ๋ ค์„œ ๋ณด๊ณ ์‹ถ์ง€๋„ ์•Š์•˜๋Š”๋ฐ ์ด์   ๋‚ด๊ฐ€ ๋” ์ฐพ์•„๋ณด๊ฒŒ ๋œ๋‹ค!! ์ง„์งœ ๊ณ„์† ๋ณด๊ณ  ์ต์ˆ™ํ•ด์ง€๋ฉด ์–ด๋Š ์ˆœ๊ฐ„! ๋ญ”๊ฐ€ ์•„? ํ•˜๊ณ  ์•„! ํ•˜๊ฒŒ ๋˜๋Š” ์ˆœ๊ฐ„์ด ์˜ค๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ ์ˆœ๊ฐ„์ด ๋Šฆ๊ฒŒ ์˜จ๋‹ค๊ณ  ์ค‘๊ฐ„์— ํฌ๊ธฐํ•˜์ง€ ์•Š๊ธฐ๋ฅผ!!
  • ์ด๋ฒˆ์ฃผ๊ฐ€ ๋๋‚ฌ๋‹ค. 6์›”์ด ๊ฐ€๊ณ  7์›”์ด ์™”๋‹ค. ์˜ˆ์ „์—๋Š” ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์ด ๊ดด๋กญ๊ณ  ํž˜๋“ค์—ˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์•Œ์•„๊ฐ€๋Š” ์žฌ๋ฏธ๊ฐ€ ์žˆ๋‹ค. (์•„์ง๊นŒ์ง€๋Š”?!ใ…‹) ๊ณ„์† ๋ชฉํ‘œ๋ฅผ ์ƒ๊ธฐํ•˜๊ณ  ๊ณ„ํš์„ ์„ธ์šฐ๊ณ  ๋™๊ธฐ๋ถ€์—ฌ๋ฅผ ํ•˜์ž ์•„์ž์žฃ!!!๐Ÿ€๐Ÿ€

'SEB > TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

009 | Java - ์ œ์–ด๋ฌธ  (0) 2022.07.05
008 | Java - Variable, Type, String, Operator, I/O  (0) 2022.07.04
006 | Linux Basic  (0) 2022.06.30
005 | Practical | Twittler Mockup Implement  (0) 2022.06.29
004 | Page Layout, Web/App ํ™”๋ฉด ์„ค๊ณ„  (0) 2022.06.28
Comments