Git & Github

[ Git , Github ] Git๊ณผ Github๋ž€?

Forest Yun 2021. 9. 21. 17:11
728x90

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

 

 

 

 

Git๊ณผ Github

  1. Git์ด๋ž€?
  2. Git๊ณผ Github์˜ ํ•„์š”์„ฑ
  3. ๊ธฐ๋ณธ Bash ๋ช…๋ น์–ด

 

 

 

 

 

 


1. Git์ด๋ž€?

๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ๊ฐœ๋ฐœํ•œ Linus Torvalds๊ฐ€ ๋งŒ๋“  ์†Œ์Šค์ฝ”๋“œ ๋ฒ„์ „๊ด€๋ฆฌ ๋„๊ตฌ์ด๋‹ค.

Git ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1.1 ์†Œ์Šค์ฝ”๋“œ ๋ฒ„์ „๊ด€๋ฆฌ ๋„๊ตฌ

์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ฒ„์ „๋ณ„๋กœ ๋”ฐ๋กœ ์ €์žฅํ•˜์—ฌ ๋ฒ„์ „๋ณ„ ์ฐจ์ด ๋น„๊ต, ๋ถ„์„์— ์šฉ์ดํ•˜๋‹ค. ์›ํ•˜๋Š” ๋ฒ„์ „์œผ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ๋™์‹œ์— ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜‘์—…์— ์œ ์šฉํ•˜๋‹ค.

 

๋ฒ„์ „๊ด€๋ฆฌ

์Šคํ† ๋ฆฌ ๊ฒŒ์ž„ ์‹œ ์ค‘๊ฐ„ ์ค‘๊ฐ„ ์ง€๊ธˆ๊นŒ์ง€์˜ ๊ฒŒ์ž„ ๊ธฐ๋ก์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ๋ฒ„์ „๊ด€๋ฆฌ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. (Day 1, Day 2, ...) 

๋ฒ„์ „๊ด€๋ฆฌ Version Control

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

์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋ฒ„์ „์ด๋ž€ ๊ฐœ๋ฐœ ๋‹จ๊ณ„ ๋˜๋Š” ์ˆœ์„œ๋ฅผ ๋ฒˆํ˜ธ๋กœ ํ‘œ์‹œํ•œ ๊ฒƒ์ด๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๊ฐœ๋ฐœ์ด 1์ฐจ ์™„๋ฃŒ๋˜๋ฉด ์•ŒํŒŒ ๋ฒ„์ „์ด๋‚˜ ๋ฒ ํƒ€ ๋ฒ„์ „์„ ํŠน์ •ํ•œ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ๋จผ์ € ๋ฐฐํฌํ•˜์—ฌ ๊ธฐ๋Šฅ๊ณผ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ฆํ•˜๊ฒŒ ํ•œ ํ›„, ๊ธฐ๋Šฅ์ด ํ™•์ •๋˜์–ด ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜๋ฉด ๋ฒ„์ „ 1.0(V1.0)์œผ๋กœ ๋‚ด๋†“๋Š”๋‹ค. ์ดํ›„ ๊ธฐ๋Šฅ์„ ๊ฐœ์„ ํ•˜์—ฌ ๋ฐœํ‘œํ•  ๋•Œ๋งˆ๋‹ค 1.1, 1.2, ···, 2.0 ๋“ฑ์œผ๋กœ ๋ฒ„์ „์„ ์ƒํ’ˆ์— ํ‘œ์‹œํ•œ๋‹ค.
๋ฒ„์ „ ๊ด€๋ฆฌ์˜ ํ•„์š”์„ฑ์€ "์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ์›์‹œ ํŒŒ์ผ์— ์–ด๋–ค ์ฐจ์ด์ ์ด ์žˆ๋Š”๊ฐ€?"์™€ ๊ฐ™์€ ์งˆ๋ฌธ์— ๋ฐ”๋กœ ๋Œ€๋‹ตํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ ๋ฒ„์ „์˜ ์ •๋ณด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šคํ™”ํ•˜์—ฌ ์–ธ์ œ๋ผ๋„ ๊ณผ๊ฑฐ์˜ ๋ฆด๋ฆฌ์Šค๋œ ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์žˆ๋‹ค. ์ฆ‰ ํŒŒ์ผ์˜ ์ด๋ ฅ์ด๋‚˜ ์ฐจ์ด์ ์„ ๊ด€๋ฆฌํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฒ„์ „๊ณผ ๊ฐ ์›์‹œ ํŒŒ์ผ์ด๋‚˜ ๋ฌธ์„œ๋ฅผ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

์ด์ „ ํŒŒ์ผ๋“ค์„ ๋ฒ„๋ฆฌ์ง€ ์•Š๊ณ  ๋ณด๊ด€ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ? ๋ฌธ์„œ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๋‹ค๋ณด๋ฉด, ์ „์—๋Š” ํ•„์š” ์—†์„ ๊ฒƒ ๊ฐ™์•„ ์‚ญ์ œํ•œ ๊ทธ๋ฆผ์ด๋‚˜ ๋‚ด์šฉ๋“ค์„ ๋ณต์›ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ํ˜„์‹ค์—์„œ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์ž˜ ๋˜์–ด์•ผ๋งŒ ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
(์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™)

์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™-๋ฆด๋ฆฌ์Šค๋œ ๋ฒ„์ „ํ•ญ๋ชฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํŠธ๋ฆฌ

 

 

 

 

 

 

1.2 ์†Œ์Šค์ฝ”๋“œ ํ˜•์ƒ๊ด€๋ฆฌ ๋„๊ตฌ

์†Œ์Šค์ฝ”๋“œ ํ˜•์ƒ๊ด€๋ฆฌ ๋„๊ตฌ = ์†Œ์Šค์ฝ”๋“œ ๋ฒ„์ „๊ด€๋ฆฌ + ์—„๊ฒฉํ•œ ๊ทœ์น™

์†Œ์Šค์ฝ”๋“œ ํ˜•์ƒ๊ด€๋ฆฌ ๋„๊ตฌ๋Š” ์†Œ์Šค์ฝ”๋“œ ํ˜•์ƒ๊ด€๋ฆฌ ์ž‘์—…์„ ๋„์™€์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด ํ˜•์ƒ๊ด€๋ฆฌ SCM: Software Configuration Management

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

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

 

 

 

 

 

 

 

 

 


2. Git๊ณผ Github์˜ ํ•„์š”์„ฑ

 

2.1 Git์˜ ํ•„์š”์„ฑ

  • ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์‹œ์ ๋งˆ๋‹ค ๊นƒ๋ฐœ(tag)๋ฅผ ๊ฝ‚๊ณ , ์›ํ•  ๋•Œ ๊นƒ๋ฐœ(tag)์ด ๊ฝ‚ํžŒ ์‹œ์ ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‹œ์ ๋งˆ๋‹ค ๊นƒ๋ฐœ(tag)๋ฅผ ๊ฝ‚์•„๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ธ์ œ๋“  ์–ด๋””๋กœ๋“  ์ด๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์†Œ์Šค ์ฝ”๋“œ ์ถ”๊ฐ€ ์‚ญ์ œ์— ๋ถ€๋‹ด์ด ์—†๋‹ค.
  • ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„์— ์˜ฌ๋ ค๋‘”๋‹ค๋ฉด ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

2.2 Github์˜ ํ•„์š”์„ฑ

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

 

 

 

 

 

 

 

 

 


3. ๊ธฐ๋ณธ bash ๋ช…๋ น์–ด

Git์€ ๋ฆฌ๋ˆ…์Šค ์†Œ์Šค์ฝ”๋“œ ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ๋ˆ…์Šค ์šด์˜์ œ์ฒด์˜ ๋ฌธ๋ฒ•(->์ •ํ™•ํ•œ ํ‘œํ˜„์ด ์•„๋‹˜)์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

๋ช…๋ น์–ด ๋œป ์„ค๋ช…
pwd print working directory ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ(ํด๋”) ๊ฒฝ๋กœ ํ™•์ธ
mkdir ๋””๋ ‰ํ† ๋ฆฌ๋ช… make directory ์ƒˆ๋กœ์šด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑ
cd ๋””๋ ‰ํ† ๋ฆฌ๋ช… change directiry ์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™(๋ณ€๊ฒฝ)
cd /c/gitTest/test/
์˜๋ฏธ: test ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
cd ..   ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
..์€ ๋ถ€๋ชจ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
cd ~   ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
~์€ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
rm remove rm ๋””๋ ‰ํ† ๋ฆฌ๋ช…: ์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
rm ํŒŒ์ผ๋ช…: ์›ํ•˜๋Š” ํŒŒ์ผ์„ ์‚ญ์ œํ•œ๋‹ค.
rm -r ๋””๋ ‰ํ† ๋ฆฌ: ์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์™€ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์„ ๋ชจ๋‘ ์‚ญ์ œํ•œ๋‹ค.
rm -rf ๋””๋ ‰ํ† ๋ฆฌ: ์›ํ•˜๋Š” ๋””๋ ‰์ดˆ๋ฆฌ์™€ ํ•˜์œ„ ํŒŒ์ผ์„ ๋ชจ๋‘ ์‚ญ์ œํ•œ๋‹ค.
ls -al List ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ ๋ชฉ๋ก๊นŒ์ง€ ๋ชจ๋‘ ์ถœ๋ ฅ
-a : ์ˆจ๊ธด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ•จ๊ป˜ ์ถœ๋ ฅ
-l : ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์ถœ๋ ฅ
-r : ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ ์ถœ๋ ฅ
-t : ์ž‘์„ฑ ์‹œ๊ฐ„ ์ˆœ์œผ๋กœ ์ถœ๋ ฅ
cp copy cp ํŒŒ์ผA ํŒŒ์ผB: A ํŒŒ์ผ์„ B ํŒŒ์ผ๋กœ ๋ณต์‚ฌํ•œ๋‹ค.
cp ํŒŒ์ผA ํด๋”B: A ํŒŒ์ผ์„ B ํด๋”๋กœ ๋ณต์‚ฌํ•œ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

๊ณต๋ถ€ ์ž๋ฃŒ

์„œ๋ฒ„๊ตฌ์ถ•๋ฐํ˜•์ƒ๊ด€๋ฆฌ - ํ•™๊ต ์ˆ˜์—…
์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™, ํ˜•์ƒ๊ด€๋ฆฌ์˜ ๊ฐœ๋…๊ณผ ์ ˆ์ฐจ
(https://terms.naver.com/entry.naver?docId=3533073&cid=58528&categoryId=58528)
์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™, ๋ฒ„์ „๊ด€๋ฆฌ
(https://terms.naver.com/entry.naver?docId=3533072&cid=58528&categoryId=58528)
ํ˜•์ƒ๊ด€๋ฆฌ ์šฉ์–ด
(https://terms.naver.com/entry.naver?docId=861725&cid=50371&categoryId=50371)
๋ฒ„์ „๊ด€๋ฆฌ
(https://terms.naver.com/entry.naver?docId=857977&cid=50371&categoryId=50371)
Git bash ๋ช…๋ น์–ด
(https://novlog.tistory.com/m/94?category=880886)
728x90

'Git & Github' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ Git, Github ] Git ํ˜‘์—… ํ”Œ๋กœ์šฐ ์ข…๋ฅ˜, Git-flow  (0) 2021.09.24