[Github] Git๊ณผ Github

ํ˜œ๋ฆฐยท2022๋…„ 8์›” 25์ผ
2

Computer Science

๋ชฉ๋ก ๋ณด๊ธฐ
3/6
post-thumbnail

๋“ค์–ด๊ฐ€๋ฉฐ


๐Ÿค” Github๋Š” ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์†”์งํžˆ Git๊ณผ Github์˜ ์ฐจ์ด๋ฅผ ์•„์ง๊นŒ์ง€ ์ •ํ™•ํžˆ ๋ชจ๋ฅด๊ณ  ์žˆ์—ˆ์–ด์š”(์ €๊ธฐ.. ์ œ๋Œ€๋กœ ์•„๋Š”๊ฒŒ ๋ญ”์ง€..) ํฌ์ŠคํŒ…ํ•  ๋•Œ๋งˆ๋‹ค ๋Š๋ผ๋Š”๊ฑฐ์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ์•Œ์•„๋‘๋Š”๊ฒŒ ์ •๋ง ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™์•„์š”. ์ด๋ฒˆ์— Git๊ณผ Github์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๋ฉฐ Git, Github, ๊ทธ๋ฆฌ๊ณ  Github์˜ ๊ธฐ๋ณธ ๋ช…๋ น์–ด๊นŒ์ง€ ๋‹ค์‹œ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์—ˆ์–ด์š”. ํ”„๋กœ์ ํŠธํ•˜๋ฉฐ ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ!



Git


๐Ÿคท๐Ÿปโ€โ™€๏ธ Git์ด ๋ญ์ฃ ?

๊นƒ(Git)์€ ํ”„๋กœ์ ํŠธ์˜ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ๋„์™€์ฃผ๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

๐Ÿ“œ Git์ด๋ž€?
๊นƒ(Git)์€ ์ปดํ“จํ„ฐ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๊ณ  ์—ฌ๋Ÿฌ ๋ช…์˜ ์‚ฌ์šฉ์ž๋“ค ๊ฐ„์— ํ•ด๋‹น ํŒŒ์ผ๋“ค์˜ ์ž‘์—…์„ ์กฐ์œจํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค.
์œ„ํ‚ค๋ฐฑ๊ณผ

ver.1, ver.2, ... ์™€ ๊ฐ™์ด ๋ณด๋‹ค ์ˆ˜์ •๋˜๊ณ  ๊ฐœ์„ ๋  ๋•Œ๋งˆ๋‹ค ๋ฒ„์ „์ด ๋†’์•„์ง€์ž–์•„์š”? ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ๋ฒ„์ „์—๋ž€ ๋ฐ”๋กœ ์ด ๋ฒ„์ „(Version)์„ ์ด์•ผ๊ธฐํ•ด์š”. ์ด์ „๊ณผ ๋‹ค๋ฅธ ๋ณ€ํ™”๋“ค์„ ๊ตฌ๋ถ„ํ•ด๋†“๋Š” ํ‘œ์‹œ์ด์ฃ . ์ด์ฒ˜๋Ÿผ Git์€ ์ด์ „๊ณผ ๋‹ฌ๋ผ์ง„ ์‚ฌํ•ญ๋“ค์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.



๐Ÿ™ ์™œ ๋ฒ„์ „๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ๊ฐ€์š”?

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด, ๋ฒ„์ „๊ด€๋ฆฌ๋Š” ํŒŒ์ผ ์ˆ˜์ • ์‹œ ํŒŒ์ผ ๊ด€๋ฆฌ๋ฅผ ๋ณด๋‹ค ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•ด์š”.

์ €๋Š” ๊ฐ™์€ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  ์ƒˆ๋กœ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์—์„œ ์™„์ „ ์•„๋ž˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ์€ ์•„๋‹ˆ์ง€๋งŒ,, ์ด๋ ‡๊ฒŒ ๋‚œํ•ดํ•œ ํŒŒ์ผ๋ช…๋“ค์ด ๋“ฑ์žฅํ•œ ๊ฒฝํ—˜์ด ๊ฝค ๋งŽ์•˜์—ˆ์–ด์š”. ver.1, ver.2, ...์ฒ˜๋Ÿผ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์ด๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์•˜๊ตฌ์š”.

ํ•˜์ง€๋งŒ Git์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ธ์ œ๋“  ์ด์ „ ๋ฒ„์ „ ์ฝ”๋“œ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์–ด์š”. ๊ทธ๋ž˜์„œ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‘๊ณ  ์—ฌ๋Ÿฌ๋ช…์˜ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ˜‘์—…ํ•  ๋•Œ ์•„์ฃผ ์œ ์šฉํ•˜์ฃ . ํŠน์ • ํŒŒ์ผ์˜ ์ฝ”๋“œ๋ฅผ ์–ธ์ œ, ๊ทธ๋ฆฌ๊ณ  ๋ˆ„๊ฐ€ ์ž‘์„ฑํ•˜๊ณ  ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.



Github


๐Ÿคท๐Ÿปโ€โ™€๏ธ Github์ด ๋ญ์ฃ ?

Git์ด ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋ผ๋Š”๊ฑด ์•Œ ์ˆ˜ ์žˆ์—ˆ์–ด์š”. ๊ทธ๋Ÿผ Github๋Š” ๋ญ˜๊นŒ์š”? Github๋Š” Git์„ ์ด์šฉํ•ด ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ˜ธ์ŠคํŒ…์ด๋ž€, ์„œ๋ฒ„ ์ปดํ“จํ„ฐ์˜ ์ „์ฒด ๋˜๋Š” ์ผ์ • ๊ณต๊ฐ„์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž„๋Œ€ํ•ด ์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ๋งํ•ด์š”. ์‰ฝ๊ฒŒ ๋งํ•ด, Github๋Š” ํŒŒ์ผ์˜ ๋ฒ„์ „์„ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ๋ฌด๋ฃŒ๋กœ ๋นŒ๋ ค์ฃผ๊ณ  ์žˆ๋Š”๊ฑฐ์ฃ !

๐Ÿ“œ Github๋ž€?
๊นƒํ—ˆ๋ธŒ(GitHub)๋Š” ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ํˆด์ธ ๊นƒ ์ €์žฅ์†Œ ํ˜ธ์ŠคํŒ…์„ ์ง€์›ํ•˜๋Š” ์›น ์„œ๋น„์Šค์ด๋‹ค.
์œ„ํ‚ค๋ฐฑ๊ณผ



๐ŸŒฑ ๊ธฐ๋ณธ ๋ช…๋ น์–ด

โœจ git init

ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•  ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค์–ด์š”.

git init

๐Ÿ“ƒ git status

ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ํŒŒ์ผ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

git status

๐Ÿ›’ git add

ํŒŒ์ผ์˜ ์ˆ˜์ •์ด๋ ฅ์„ ๊ธฐ๋กํ•  ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •์ด๋ ฅ์€ commit์ด๋ž€ ๋ช…๋ น์–ด๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋‚จ๊ธธ๊ฑด๋ฐ์š”, ์ด๋ ‡๊ฒŒ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์ง€๋ฅผ ๋‚จ๊ธธ ํŒŒ์ผ๋“ค์„ add๋ฅผ ์‚ฌ์šฉํ•ด ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋„ฃ์–ด์ค˜์š”.

git add .๋กœ ํŒŒ์ผ ์ „์ฒด๋ฅผ addํ•  ์ˆ˜๋„ ์žˆ๊ณ , git add [ํŒŒ์ผ์ด๋ฆ„]์œผ๋กœ ์›ํ•˜๋Š” ํŒŒ์ผ๋งŒ addํ•  ์ˆ˜๋„ ์žˆ์–ด์š”.

git add .
git add [ํŒŒ์ผ์ด๋ฆ„]

๐Ÿ’ฌ git commit

add๋กœ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ˆ˜์ •์ด๋ ฅ์„ ๋‚จ๊ธธ ํŒŒ์ผ๋“ค์„ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค๋ฉด, commit์œผ๋กœ ์ˆ˜์ •์ด๋ ฅ์„ ๊ธฐ๋กํ•  ์ฐจ๋ก€์—์š”! git commit -m "๋ฉ”์„ธ์ง€" ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ๋‚จ๊ฒจ์š”.

git commit -m "๋ฉ”์„ธ์ง€"

๐Ÿ“ƒ git log

git log๋ž€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ปค๋ฐ‹ ์ด๋ ฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

git log

๐Ÿค– git clone

github์— ์žˆ๋Š” ๊ธฐ์กด Repository๋ฅผ ๋‚ด ๋กœ์ปฌ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์ œํ•ด์ค˜์š”.

git clone [Repository์ฃผ์†Œ]

๐ŸŒณ git branch

branch๋Š” ๋‚˜๋ฌด์˜ ๊ฐ€์ง€์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ๊ฐˆ๋ž˜๋กœ ๋ป—์–ด๋‚˜๊ฐ„ ๋…๋ฆฝ๋œ ๊ณต๊ฐ„์ด์ด์—์š”. main๊ณต๊ฐ„์—์„œ ๋ชจ๋‘๊ฐ€ ํ•จ๊ป˜ ์ž‘์—…์„ ํ•œ๋‹ค๋ฉด ์ˆ˜์ •์‚ฌํ•ญ์„ ๊ด€๋ฆฌํ•˜๋ฉฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ํž˜๋“ค๊ฑฐ์—์š”. branch๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด์ค„ ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

git branch๋’ค์— ์›ํ•˜๋Š” branch ์ด๋ฆ„์„ ์จ์ฃผ๋ฉด ํ•ด๋‹น ์ด๋ฆ„์˜ branch๊ฐ€ ์ƒ์„ฑ๋ผ์š”.

git branch [branch์ด๋ฆ„]

๐Ÿƒ๐Ÿปโ€โ™€๏ธ git checkout

checkout ๋ช…๋ น์–ด๋กœ branch๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ์–ด์š”. main์—์„œ ๋‹ค๋ฅธ branch๋กœ ์ด๋™ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋“ฑ๋“ฑ.. ํ˜„์žฌ branch์—์„œ ๋‹ค๋ฅธ branch๋กœ ์ด๋™ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋ž๋‹ˆ๋‹ค.

git checkout [branch์ด๋ฆ„]

๐Ÿ‘พ git pull

github์— ์žˆ๋Š” ํŠน์ • branch์˜ ์ฝ”๋“œ๋ฅผ ๋‚ด ๋กœ์ปฌ๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉํ•ด์š”.

git pull origin [branch์ด๋ฆ„]

โž• git merge

๋กœ์ปฌ์—์„œ ํ˜„์žฌ branch์˜ ์ฝ”๋“œ๋ž‘ ํŠน์ • branch์˜ ์ฝ”๋“œ๋ฅผ ํ•ฉ์น  ๋•Œ ์‚ฌ์šฉํ•ด์š”.

๋งŒ์•ฝ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์— ๋‹ค์–‘ํ•œ branch๋ฅผ ๋งŒ๋“  ๋’ค, main์— ๋ฐ˜์˜ํ•  ๋•Œ merge๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ฃผ๋Š” ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

git merge [branch์ด๋ฆ„]
profile
FE Developer

0๊ฐœ์˜ ๋Œ“๊ธ€