๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”‘Code

Git & Github

by pajiyeee 2023. 3. 17.

Git๊ณผ Github๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ˜‘์—…ํ•  ๋•Œ ํšจ์œจ์ ์œผ๋กœ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํˆด์ด๋‹ค.
๋‘˜์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ๋…์œผ๋กœ ์ปคํ”ผ์™€ ์ปคํ”ผ์ˆ์˜ ๊ด€๊ณ„๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.
git ๊ณผ github ๊ฐ€ ๋ญ”์ง€ ์•Œ์•„๋ณด๊ณ  ๋ช…๋ น์–ด๋“ค์ด ์™„์ „ํžˆ ์ต์ˆ™ํ•ด์ง€์ง€ ์•Š์•„์„œ ์ฐธ๊ณ ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•˜๋ ค๊ณ  ํ•œ๋‹ค.
 

git

-Version Control System(VCS): ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
-๊นƒ์€ ๋‚ด ํŒŒ์ผ์„ ์–ธ์ œ๋‚˜ ๋ชจ๋“  ํŒŒ์ผ์˜ ๋ณ€ํ™”๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.
-๊นƒ์˜ ์ตœ๊ฐ•์ ์€ ๊ฐ™์€ ํŒŒ์ผ ๋Œ€ํ•œ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ์Œ(ํƒ€์ž„๋ผ์ธ ๊ฐ™์€)
-๊ฐ๊ธฐ ๋‹ค๋ฅธ n๊ฐœ์˜ ํŒŒ์ผ์— ํ•ด๋‹น ๋ณ€๊ฒฝ์‚ฌํ•ญ ํŒŒ์ผ์„ ํ•œ ๋ฒˆ์— ๋‹ค ์ ์šฉํ•ด์ค€๋‹ค.
-๋‚˜์™€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํ•˜๋‚˜์˜ ํŒŒ์ผ์„ ๊ฐ–๊ณ  ์ผ์„ ํ•  ์ˆ˜ ์žˆ๊ณ  ์„œ๋กœ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ๊ณผ ์ถฉ๋Œํ•  ์ผ ์—†๋‹ค,
-์„œ๋กœ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.
 
 

github

-์„œ๋กœ์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ
-๊นƒํ—ˆ๋ธŒ๋Š” ํด๋ผ์šฐ๋“œ์— ์žˆ๋Š” ๊นƒ ์ œ๊ณต์ž
-๋‚ด ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ๊นƒ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊นƒํ—™์— ์˜ฌ๋ฆฌ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด๊ฑธ ๊ฐ€์ ธ์™€ ๋ณ€ํ™”๊ธฐ๋ก์„ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
-๋‹ค๋ฅธ ์›น์‚ฌ์ดํŠธ๋„ ์žˆ์ง€๋งŒ ๊นƒํ—™์ด ์ œ์ผ ์œ ๋ช…ํ•ด์„œ ์œ ๋ช… ๊ธฐ์—…์˜ ์˜คํ”ˆ ์†Œ์Šค๋“ค์„ ๋‹ค ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
 
 

Repositories(์ €์žฅ์†Œ)

-Local repository : ๋‚ด ์ปดํ“จํ„ฐ ๋กœ์ปฌ ์ €์žฅ์†Œ
-Remote repository : ์™ธ๋ถ€ ์ €์žฅ์†Œ, ๋กœ์ปฌ ํ”„๋กœ์ ํŠธ์™€ ๋ณ‘ํ•ฉํ•˜๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ €์žฅํ•˜๊ณ  ์ฝ”๋“œ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ
 
 

Add

 git add . 
-ํŒŒ์ผ์„ staging area๋กœ ์ถ”๊ฐ€
 
 

Commit

 git commit -m "ADD : ์ˆ˜์ •๋œ ๋‚ด์šฉ" 
-ํŠน์ • ๋‚ด์šฉ์ด๋‚˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€/์ˆ˜์ •ํ•œ ํ›„์˜ ์ƒํƒœ๋ฅผ ์Šค๋ƒ…์ƒท์ฒ˜๋Ÿผ ์ปค๋ฐ‹์— ์ €์žฅํ•œ๋‹ค.
-์ปค๋ฐ‹ํ•˜๋ ค๋ฉด ๋จผ์ € staging area์— ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
๐Ÿ“Œ ์œ„ ์ฝ”๋“œ์—์„œ -m์€ ํ•œ ์ค„ ๊ฐ„๋‹จํžˆ ์“ธ ๋•Œ ํ‘œํ˜„
 
 

Status

 git status 
-๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ํ™•์ธ
-ํ™•์ธํ•˜๊ณ  ๋‚˜๋ฉด git์œผ๋กœ ์ถ”์ ๋˜์ง€ ์•Š๋˜ ํŒŒ์ผ๋“ค์„ ๋ฐœ๊ฒฌํ•˜๊ณ  staging area์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
 
 

Log

 git log 
-๋ชจ๋“  ์ปค๋ฐ‹ ๋‚ด์—ญ์„ ํ™•์ธ
 
 

Checkout

 git checkout ์ด๋™ํ•˜๋ ค๋Š” ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ 
-์ด๋™ํ•˜๊ณ  ์‹ถ์€ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•˜์—ฌ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค.
-์ด๋™ํ•˜๊ณ  ๋‚˜๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๋‚˜ ์ปค๋ฐ‹์€ ์ด๋™ํ•œ ๋ธŒ๋žœ์น˜์—๋งŒ ์˜ํ–ฅ์„ ์ค€๋‹ค.
 

 

Branch

 git branch ์ƒ์„ฑํ•˜๋ ค๋Š” ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ 
-๋…๋ฆฝ์ ์ธ ์ž‘์—… ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด, ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์˜ ์˜ํ–ฅ ๋ฐ›์ง€ ์•Š๊ณ  ์ž‘์—…์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
-์—ฌ๋Ÿฌ ๋ช…์ด ๋™์‹œ์— ์ž‘์—…ํ•  ๋•Œ, ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์—์„œ ์ž์‹ ์˜ ๋…๋ฆฝ๋œ ์ž‘์—… ๊ณต๊ฐ„์ธ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ ๋‹ค.
-์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ธŒ๋žœ์น˜๋Š” ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ˜์˜ํ•˜์—ฌ ์ƒ์„ฑํ•œ๋‹ค.
๐Ÿ“Œ git branch ๋กœ ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜์„œ git checkout ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ด๋™ํ•ด์ค˜์•ผ ์ƒˆ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
 
 git branch 
-ํ”„๋กœ์ ํŠธ์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ธŒ๋žœ์น˜๋ฅผ ํ™•์ธ
 
 

Merge

 git merge ๋ณ‘ํ•ฉ์‹œํ‚ค๋ ค๋Š” ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ 
-ํŠน์ • ๋ธŒ๋žœ์น˜์˜ ์™„๋ฃŒ๋œ ์ž‘์—…์„ ๊ธฐ์ค€์ด ๋˜๋Š” main ๋˜๋Š” master ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
 
 

Remote

 git remote add origin ๊นƒํ—™ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ
-๊นƒ๊ณผ ๊นƒํ—™์ด ์—ฐ๊ฒฐ ์•ˆ๋œ ์ƒํƒœ์—์„œ remote๋กœ ์ฒ˜์Œ์— ์—ฐ๊ฒฐ์‹œ์ผœ์•ผ ํ•œ๋‹ค.
 
 

Push

git push origin ๊นƒํ—™ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„
-๋‚ด ๋กœ์ปฌ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๊นƒํ—™์— ์žˆ๋Š” ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์— ์˜ฌ๋ฆด ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
๐Ÿ“Œ ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ ๊ณณ์—์„œ add/ commit ์„ ๋จผ์ € ํ•˜๊ณ  push
๐Ÿ“Œ ์ฒ˜์Œ ์˜ฌ๋ฆด ๋•Œ๋Š” remote๋กœ ๋‚ด ๋กœ์ปฌ๊ณผ ๊นƒํ—™ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  push(clone ๋ฐ›์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด)
๐Ÿ“Œ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์€ master/main ์ผ ์ˆ˜๋„ ์žˆ๊ณ  ํŠน์ • ๋ธŒ๋žœ์น˜์ผ ์ˆ˜๋„ ์žˆ์Œ
 
 

โœ…  ๋‚ด ๋กœ์ปฌ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์—์„œ ๊นƒํ—™์— ์˜ฌ๋ฆฌ๊ธฐ

 
 

โœ…  ๊นƒํ—™์—์„œ ํด๋ก  ๋ฐ›์•„ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ํ”„๋กœ์ ํŠธ ํŽธ์ง‘ํ•˜๊ธฐ

์Šคํฌ๋ฆฐ์ƒท ์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : github

 
 

'๐Ÿ”‘Code' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Refactoring  (0) 2023.03.19