TIL : Git ๊ณผ Github
728x90

Today, What I learned?

๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ ๊ฐœ๊ฐ• ์ฒซ๋‚ ! ์ •์‹ ์—†๋Š” ์˜คํ‹ฐ๋ฅผ ์ง€๋‚˜ ๊นƒ&๊นƒํ—ˆ๋ธŒ ํŠน๊ฐ•์„ ๋“ฃ๊ฒŒ ๋˜์—ˆ๋‹ค.

๊ทธ๋™์•ˆ ํ˜ผ์ž์„œ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์จ์˜ค๊ธด ํ–ˆ์ง€๋งŒ ๊ฐ๊ฐ์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ๊ฐ€๋ณ๊ฒŒ ํ›‘๊ณ  ๋„˜์–ด๊ฐ”๋˜ ํ„ฐ๋ผ ์ž์„ธํžˆ ์•Œ์ง€ ๋ชปํ–ˆ๋‹ค.
์˜ค๋Š˜ ๋ฐฐ์šด ๊นƒ๊ณผ ๊นƒํ—ˆ๋ธŒ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

 

 

 

Git ๊นƒ

ํ˜‘์—…ํ•˜๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์žˆ์–ด ๊นƒ์€ ํ•„์ˆ˜์ ์ด๋‹ค!

๊นƒ์€ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•˜๊ณ , ํ•จ๊ป˜ ํ˜‘์—…ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ์ž‘์—…์˜ ์กฐ์œจ์„ ์›ํ™œํ•˜๊ฒŒ ์œ„ํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(VCS, Version Control System)์ด๋‹ค. ์ด๋Ÿฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ๊นƒ์ด ์žˆ์ง€๋งŒ ๊นƒ ์ด์™ธ์—๋„ Subversion, Mercurial ๋“ฑ์ด ์žˆ๋‹ค.

 

 

 

๊นƒ์ด ์—†๋‹ค๋ฉด?

๊นƒ์ด ์™œ ํ•„์š”ํ• ๊นŒ? ๋ฐ˜๋Œ€๋กœ ๊นƒ์ด ์—†๋‹ค๋ฉด ์–ด๋–ป๊ธธ๋ž˜ ๊นƒ์ด ํ•„์š”ํ•œ ๊ฒƒ์ธ์ง€ ๋ช‡ ๊ฐ€์ง€๋กœ ์ •๋ฆฌํ•ด๋ณด๋ฉด ์ด๋ ‡๋‹ค.

 

 

๐Ÿฅฒ ๋ณ€๊ฒฝ ๋‚ด์—ญ์˜ ํ™•์ธ์ด ์–ด๋ ต๋‹ค

์‚ฌ์ง„์€ ์˜ˆ์‹œ..

๋””์ž์ด๋„ˆ๋กœ ๊ทผ๋ฌดํ•˜๋ฉฐ ๋ฌด์ˆ˜ํ•œ ์ปจํŽŒ์„ ๋ฐ›๋˜ ์‹œ์ ˆ..

ํ•œ ๋ฒˆ์˜ ์ปจํŽŒ๋งˆ๋‹ค ์ €๋ ‡๊ฒŒ ๋ฌด์ˆ˜ํ•˜๊ฒŒ ๋‹ค๋ฅธ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋ฉฐ ๊ผฌ๋ฆฌ์˜ ๊ผฌ๋ฆฌ๋ฅผ ๋ฌด๋Š” ์ˆ˜์ •๋ณธ๋“ค์ด ํƒ„์ƒํ–ˆ๋”๋žฌ๋‹ค.

ํ•˜์ง€๋งŒ ์ˆ˜์ • ํŒŒ์ผ๋“ค์ด ์Œ“์—ฌ๊ฐˆ์ˆ˜๋ก ์–ด๋–ค ๊ฒƒ์ด ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€ ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ๋˜๋ฉฐ ํ˜ผ๋ž€์˜ ๋„๊ฐ€๋‹ˆ๋กœ ๋น ์ง€๊ฒŒ ๋œ๋‹ค.

์Œ“์—ฌ๊ฐ€๋Š” ํŒŒ์ผ์˜ ์šฉ๋Ÿ‰์€ ๋ค์ด๋‹ค.

 

๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ๊ฐ์˜ ์ž‘์—…์ž๊ฐ€ ํŒŒ์ผ์„ ๋ฎ์–ด์“ฐ๊ธฐ ํ•˜๋ฉด์„œ ์ž‘์—…์„ ํ•ด๋‚˜๊ฐˆ ์ˆ˜๋„ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์—ญ์‹œ ์ด ์ „๊ณผ ๋น„๊ตํ•ด์„œ ์–ด๋–ค ์ฝ”๋“œ๊ฐ€ ๋‹ฌ๋ผ์ง„ ๊ฒƒ์ธ์ง€ ๋‚จ์•„์žˆ๋Š” ๊ธฐ๋ก์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ ๋‚ด์—ญ์˜ ํ™•์ธ์ด ์–ด๋ ต๋‹ค.

 

 

 

๐Ÿฅฒ ์ž‘์—…์„ ๋˜๋Œ๋ฆฌ๊ธฐ ์–ด๋ ต๋‹ค

ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์™„์„ฑ๋˜๊ณ  ์šด์˜๋˜๋Š” ๊ณผ์ •์—์„œ ํ•„์—ฐ์ ์œผ๋กœ ์ˆ˜๋งŽ์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

A์—์„œ A'๋กœ ๊ธฐ๋Šฅ์ด ๋ณ€๊ฒฝ๋˜๋ฉฐ ์—ฌ๋Ÿฌ ํŒŒ์ผ๋“ค์„ ์ˆ˜์ •ํ–ˆ๋‹ค๊ณ  ํ•˜์ž.

์ˆ˜์ •ํ•˜๊ณ ๋ณด๋‹ˆ ๋ณด์•ˆ ์ƒ์˜ ์ด์Šˆ๋ผ๋˜๊ฐ€, ์–ด๋–ค ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋‹ค์‹œ A ์ฝ”๋“œ๋กœ ๋˜๋Œ๋ ค์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด?

๋˜๋Š” ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋˜์งš์–ด๋ณด๋ฉฐ ๋‹ค์‹œ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ์ผ์ด ์ƒ๊ธด๋‹ค๋ฉด?..

๊นƒ์ด ์—†๋‹ค๋ฉด ์ƒ๊ฐ๋งŒ ํ•ด๋„ ์•„์ฐ”ํ•œ ์ƒํ™ฉ๋“ค์ด๋‹ค.

 

 

 

๐Ÿฅฒ ํ˜‘๋ ฅํ•˜๊ธฐ ์–ด๋ ต๋‹ค

์ผ๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ˜‘์—…์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋‚˜๊ฐ„๋‹ค.

๊นƒ์ด ์—†๋‹ค๋ฉด ๊ฐ๊ฐ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์„œ๋กœ์˜ ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ๊ณต์œ ํ•ด๋‚˜๊ฐˆ๊นŒ?..

์ด๋Ÿฐ ์ด์œ ๋กœ ๊นƒ์€ ์†Œ์Šค์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•œ ์œ ์˜๋ฏธํ•œ ๊ฒฐ๊ณผ๋“ค์„ ํ•˜๋‚˜์˜ ๋ฒ„์ „์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

์ฆ‰ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

 

 

๊ทธ๋Ÿผ ๊นƒํ—ˆ๋ธŒ๋Š” ๋ญ”์ง€?

๊นƒํ—ˆ๋ธŒ๋Š” ์ด๋Ÿฐ ๊นƒ๋“ค์„ ํด๋ผ์šฐ๋“œ ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š”, ์›๊ฒฉ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๋‹ค.

๋กœ์ปฌ ํŒŒ์ผ์„ ๊นƒํ—ˆ๋ธŒ์— 'Push' ํ•˜์—ฌ ํ˜‘์—…์„ ์œ„ํ•ด ํŒŒ์ผ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

์‚ฌ์šฉ์ž๋“ค๋ผ๋ฆฌ ํŒ”๋กœ์šฐํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์— ๋ถ๋งˆํฌํ•˜๋“ฏ star๋ฅผ ์ฐ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

 

Git ์‹œ์ž‘ํ•ด๋ณด๊ธฐ

์šฐ์„  ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๊นƒ์ด ๊ด€๋ฆฌ ํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ๊ณต๊ฐ„์€ ํฌ๊ฒŒ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ(์›Œํ‚นํŠธ๋ฆฌ) : ๋ฒ„์ „ ๊ด€๋ฆฌ์˜ ๋Œ€์ƒ์ด ์œ„์น˜ํ•˜๋Š” ๊ณต๊ฐ„ (. git์ด ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ)
  • ์Šคํ…Œ์ด์ง€(์ธ๋ฑ์Šค) : ๋‹ค์Œ ๋ฒ„์ „์ด ๋  ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์ด ์˜ฌ๋ผ๊ฐ€๋Š” ๊ณต๊ฐ„
  • ์ €์žฅ์†Œ(๋ ˆํŒŒ์ง€ํ† ๋ฆฌ) : ๋ฒ„์ „์ด ๋งŒ๋“ค์–ด์ง€๊ณ  ๊ด€๋ฆฌ๋˜๋Š” ๊ณต๊ฐ„

 

์ด๋Ÿฐ ์ €์žฅ ๊ณต๊ฐ„์„ ๋ฐ”ํƒ•์œผ๋กœ, ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊นƒ์—์„œ ๋ฒ„์ „์„ ๋งŒ๋“œ๋Š” ์‚ฌ์ดํด์„ ์š”์•ฝํ•˜๋ฉด ์ด๋ ‡๋‹ค.

  • ์ž‘์—…์„ ํ•œ๋‹ค (์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ฐœ์ƒ)
  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋“ค์„ ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ฆฐ๋‹ค (add)
  • ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ๋งŒ๋“ ๋‹ค (commit)

์ด ์‚ฌ์ดํด์„ ์œ„ํ•œ ๊นƒ ๋ช…๋ น์–ด๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

 

git ์ดˆ๊ธฐํ™”

git init

 

 

add
. ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๋ณ€๊ฒฝ ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜, ํŒŒ์ผ๋ช…์„ ์ง์ ‘ ์ง€์ •ํ•˜์—ฌ ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

git add .
git add ํŒŒ์ผ๋ช…

 

 

Commit
๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋‹ด์•„ ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ๋งŒ๋“ ๋‹ค.

git commit -m "์ปค๋ฐ‹๋ฉ”์„ธ์ง€"

 

 

ํ˜„์žฌ ์Šคํ…Œ์ด์ง€ ํ™•์ธ
ํ˜„์žฌ ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ ค์ ธ ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

git status

 

 

์ง€๊ธˆ๊นŒ์ง€์˜ ์ปค๋ฐ‹ ํ™•์ธ
ํ˜„์žฌ๊นŒ์ง€์˜ ์ปค๋ฐ‹๋‚ด์—ญ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

git log 

 

 

push
๋‚ด ๋กœ์ปฌ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ์—…๋กœ๋“œํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

git push

 

 

๊นƒํ—ˆ๋ธŒ์™€ ์ƒํ˜ธ์ž‘์šฉํ•ด๋ณด๊ธฐ

clone
๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‚ด ๋กœ์ปฌ ํ™˜๊ฒฝ์œผ๋กœ ๋ณต์ œํ•ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

git clone ๊ฒฝ๋กœ

 

 

pull
์›๊ฒฉ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์ปค๋ฐ‹๋“ค์„ ๋กœ์ปฌ ์ปค๋ฐ‹ ๋‚ด์—ญ๋“ค๊ณผ ํ•ฉ์นœ๋‹ค.
์ปค๋ฐ‹ ๋‚ด์—ญ๋“ค์„ ๋‹น๊ฒจ์˜ค๋ฉฐ ๋กœ์ปฌ ํŒŒ์ผ๊ณผ ์›๊ฒฉ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ์ƒํƒœ๊ฐ€ ๋™์ผํ•˜๋„๋ก ๋งž์ถ˜๋‹ค!

git pull

 

 

 

Welcome to mini project!

์ฒซ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค.. ๐Ÿ˜‡ 

๋น ๋“ฏํ•œ ์ผ์ • ์†.. ๋งˆํฌ์—…์ด ๊ทธ๋ž˜๋„ ๋Šฅ์ˆ™ํ•œ ํŽธ์ด๋ผ ๋ฉ”์ธ ํŽ˜์ด์ง€๊นŒ์ง€ ํ•œ๋ฒˆ ๊ตฌ์กฐ ์žก์•„๋ณผ๊ฒŒ์š”!~ ํ•˜๊ณ  ๋œ์ปฅํ•ด๋ฒ„๋ ธ๋Š”๋ฐ

๊ดœํžˆ ์š•์‹ฌ์„ ๋ถ€๋ฆฐ ๊ฒƒ์€ ์•„๋‹Œ์ง€ ๊ฑฑ์ •๋˜๊ธฐ๋„ ํ•˜๊ณ (?).. (๋ฌผ๋ก  ๋งก์•˜์œผ๋‹ˆ ๋˜ ์ง„์‹ฌ์œผ๋กœ ํ•ด๋ณผ ์˜ˆ์ •)

๋‘ฅ๊ธ€๊ฒŒ ๋งํ•˜๋ฉฐ ํŒ€์›๋“ค๊ณผ ์›ํ™œํ•œ ํ˜‘์—…์„ ์ด๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค!! ๐Ÿ’ช๐Ÿ’ช

 

 

 

 

 

 

728x90