์›๋ฌธ:  https://dev.to/reenatoteixeira/everything-that-you-need-to-know-about-git-2440

 

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

 
์ด๊ฒƒ์€ ์•„๋งˆ๋„ 1972๋…„ ์ด์ „์— ์ฒ˜์Œ์œผ๋กœ ์ค‘์•™ ์ง‘์ค‘์‹ ๋ฒ„์ „ ์ œ์–ด ์†Œํ”„ํŠธ์›จ์–ด ์ค‘ ํ•˜๋‚˜์ธ SCCS(Source Code Control System)๊ฐ€ ์ถœ์‹œ๋˜๋ฉด์„œ ๋ˆ„๊ตฌ๋‚˜ ์ž์‹ ์˜ ์ฝ”๋“œ๋กœ ๋ฒ„์ „ ์ œ์–ด๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ์„ ๊ฒƒ์ด๋‹ค. 
 
๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ SCSS๋ฅผ ์–˜๊ธฐํ•˜๋ ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ๊ด€์‹ฌ์žˆ์–ด ํ•˜๋Š” ๊ฒƒ์€ ๋‚ด๋…„(07/04/2005)์— 20์ฃผ๋…„์„ ๋งž๋Š” ๋ถ„์‚ฐํ˜• ์˜คํ”ˆ์†Œ์Šค ๋ฒ„์ „ ์ œ์–ด ์†Œํ”„ํŠธ์›จ์–ด์ธ GIT์ด๋‹ค. 
 

๋ชฉ์ฐจ

 

1. GIT์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

 

GIT์€ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์ œ์ž‘์ž์ธ Linus Torvald์ด ๊ฐœ๋ฐœํ•œ 2005๋…„์— ์ถœ์‹œ๋œ ๋ถ„์‚ฐํ˜• ์˜คํ”ˆ์†Œ์Šค ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค. 
 
GIT์„ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ฒ„์ „์„ ์ „์—ญ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ (์ž‘์—…ํ•˜๋Š” ํด๋”์—์„œ) ๋ชจ๋“  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฆฌ๋ชจํŠธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์™€ ์‹ฑํฌ๋ฅผ ๋งž์ถœ ์ˆ˜ ์žˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด GitHub์—์„œ). 

 



 

2. GIT์€ ์–ด๋–ป๊ฒŒ  ์ž‘๋™ํ• ๊นŒ?

 

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

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด GIT์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์€ ์•„๋‹ˆ๋‹ค! (thanks God)

 

์ด๊ฒƒ์€ ์ค‘์•™ ์ง‘์ค‘๋œ ๋ฒ„์ „ ์ปจํŠธ๋กค ์‹œ์Šคํ…œ์ด ์ž‘๋™๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์‚ฌ์šฉ์ž๋Š” ํŒŒ์ผ์„ 'check-out(์ฒดํฌ์•„์›ƒ)'ํ•˜๊ณ  'check-in(์ฒดํฌ์ธ)'ํ•ด์•ผ ํ•œ๋‹ค. ํŠน์ • ํŒŒ์ผ์— ๋Œ€ํ•œ ์ž‘์—…์ด ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ํŒŒ์ผ์„ ์ฒดํฌ์•„์›ƒํ•˜์—ฌ ์ €์žฅ์†Œ์—์„œ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ํŒŒ์ผ์„ ์ฒดํฌ์ธํ•˜์—ฌ ์ €์žฅ์†Œ๋กœ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.


 
GIT๊ฐ™์€ ๋ถ„์‚ฐํ˜• ์‹œ์Šคํ…œ์—์„œ๋Š” ๊ฐ™์€ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ํŒŒ์ผ์— ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์ด ๋™์‹œ์— ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ํŒŒ์ผ์„ ์กฐ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ์„ ๋กœ์ปฌ๋กœ ๋ณต์ œ(๋˜๋Š” ์ „์ฒด ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œ)ํ•œ ๋‹ค์Œ ์ˆ˜์ •์‚ฌํ•ญ์„ ์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ๋‹ค์‹œ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋™์ผํ•œ ํŒŒ์ผ์„ ์กฐ์ž‘ํ•˜๋ฉด์„œ ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค.


์ด๊ฒƒ์€ ์„ธ๊ณ„ ์—ฌ๋Ÿฌ ์ง€์—ญ์˜ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ™์€ ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…ํ•˜๊ณ  ์ˆ˜์ • ๋ฐ ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ์ถฉ๋Œ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ๋ฐฐํฌ๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค(์—ฌ๊ธฐ์„œ ๋ณ‘ํ•ฉ ์ถฉ๋Œ(merge conflicts)์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค).


3. GIT ์„ค์น˜ํ•˜๊ธฐ


GIT์€ ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ์ฃผ์š” ์šด์˜ ์ฒด์ œ(Windows, Linux, MacOs...)์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๋ช…๋ น์ค„์ด๋‚˜ git-scm.com ์˜ ๊ณต์‹ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

3.1 ์œˆ๋„์šฐ์—์„œ ์„ค์น˜ํ•˜๊ธฐ


์œˆ๋„์šฐ์— GIT๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€์„œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ์ง€์‹œ์‚ฌํ•ญ์„ ๋”ฐ๋ผ๊ฐ€๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ํ„ฐ๋ฏธ๋„์—์„œ GIT ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

3.2 ๋ฆฌ๋ˆ…์Šค์—์„œ ์„ค์น˜ํ•˜๊ธฐ


๋ฆฌ๋ˆ…์Šค์˜ ๊ฒฝ์šฐ๋Š” ์•„๋ž˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด GIT๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค:

sudo apt install git-all


์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด GIT์ด ์šฐ๋ฆฌ์˜ ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰๋  ์ค€๋น„๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

3.3 Mac์—์„œ ์„ค์น˜ํ•˜๊ธฐ


Mac์˜ ๊ฒฝ์šฐ GIT๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ Homebrew๋ฅผ ์„ค์น˜ํ•œ ๋‹ค์Œ ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค:
 

brew install git

 
์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด GIT์ด ์šฐ๋ฆฌ์˜ ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰๋  ์ค€๋น„๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.


4. GIT ๊ตฌ์„ฑํ•˜๊ธฐ

 
์„ค์น˜ํ•œ ํ›„์—๋Š” ์•„๋ž˜ ์‹คํ–‰์„ ํ†ตํ•ด GIT์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค:

git config --global user.name "[username]"
# e.g. John Doe
git config --global user. email "[email@email.com]"
# e.g. johndoe@email.com


 

๋˜ํ•œ --global ํƒœ๊ทธ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ํŠน์ • ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ํŠน์ • ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 


 5. ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์‹œ์ž‘ํ•˜๊ธฐ

 
GIT์ด ๊ตฌ์„ฑ๋˜๋ฉด ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ƒˆ ์ €์žฅ์†Œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

5.1 ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ(git init)


์ƒˆ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ์›ํ•˜๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋ฃจํŠธ ํด๋”๋กœ ์ด๋™ํ•˜๊ณ  ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

git init

 

 

์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ ํด๋”์—  .git ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ, ์ด ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ์ž‘์—… ํด๋”์˜ ๋ฒ„์ „ ์ปจํŠธ๋กค์„ ๋‹ด๋‹นํ•œ๋‹ค. 

 

5.2 ๊ธฐ์กด ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋ณต์ œํ•˜๊ธฐ(git clone)

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

 

git clone [repository-url]

 

 

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋ฉด ์ „์ฒด ๋ ˆํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์šฐ๋ฆฌ์˜ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ๋ณต์ œ๋  ๊ฒƒ์ด๊ณ  ์ž๋™์œผ๋กœ ์—ฐ๊ด€๋œ ์›๊ฒฝ ์ €์žฅ์†Œ์™€ ์—ฐ๊ฒฐ๋  ๊ฒƒ์ด๋‹ค.

 

๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋ณต์ œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋”์ด์ƒ git remote ๋ช…๋ น์–ด๋ฅผ ๋ฏธ๋ž˜์— ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋œปํ•œ๋‹ค.

 


 

6. GIT์œผ๋กœ ์ž‘์—…ํ•˜๊ธฐ

์šฐ๋ฆฌ์˜ ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ ํŒŒ์ผ๋“ค์ด ์ž๋™์œผ๋กœ GIT์— ์˜ํ•ด ๋™๊ธฐํ™”๋˜์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฒ„์ „ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ƒ๊ธธ ๊ฒฝ์šฐ GIT์— ๋ณด๊ณ ํ•ด์•ผ ํ•œ๋‹ค.

 

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

 

์ด๋ฅผ ์œ„ํ•ด ๋ฒ„์ „ ์ปจํŠธ๋กค์— 3๋‹จ๊ณ„์˜ ๋ฌดํ•œ ํ”Œ๋กœ์šฐ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

 MODIFY -> STAGE -> COMMIT

 

 

  • MODIFY(์ˆ˜์ • ๋‹จ๊ณ„): ๋ฒ„์ „ ์ปจํŠธ๋กค์˜ ์ฒซ ๋ฒˆ์งธ ์ž‘์—…์€ MODIFY์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋งˆ์ง€๋ง‰ ๋ฒ„์ „๊ณผ ๋น„๊ตํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.
  • STAGE(์Šคํ…Œ์ด์ง€ ๋‹จ๊ณ„): ๋‘ ๋ฒˆ์งธ stage ๋‹จ๊ณ„์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋‹ค์Œ ์ปค๋ฐ‹์— ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ํŒŒ์ผ์„ ์ˆ˜์ •๋œ ํŒŒ์ผ์— ์œ„์น˜ ์‹œํ‚จ๋‹ค.
  • COMMIT(์ปค๋ฐ‹ ๋‹จ๊ณ„): ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์ธ commit ๋‹จ๊ณ„์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•  ๋•Œ ์Šคํ…Œ์ด์ง€์˜ ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ๋ณด๋‚ธ๋‹ค.

 

์ˆ˜์ •๋œ ํŒŒ์ผ๋“ค์„ ์ปค๋ฐ‹ํ•œ ํ›„์—๋Š” ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฉฐ, ๋‹ค์‹œ ์—…๋ฐ์ดํŠธ ์‚ฌํ•ญ๋“ค์„ ๋ฐ›๊ณ  ํ•œ ๋ฒˆ ๋” '์ˆ˜์ •'ํ•˜๊ณ  '์Šคํ…Œ์ด์ง€'์— ์œ„์น˜์‹œํ‚ค๊ณ  ๋‹ค์‹œ '์ปค๋ฐ‹'ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ํ™•์ธํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. (๊ทธ๋ž˜์„œ '๋ฌดํ•œ' ํ”Œ๋กœ์šฐ๋ผ๊ณ  ํ•œ ๊ฒƒ ใ…Žใ…Ž)

 

์ปค๋ฐ‹์€ ์ˆ˜์ •๋œ ํŒŒ์ผ์˜ ์ด์ „ ๋ฒ„์ „์„ ๋ฎ์–ด์“ฐ์ง€ ์•Š์œผ๋ฉฐ, ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ์žˆ๋Š” ์ƒˆ ๋ฒ„์ „์„ ํฌํ•จํ•˜๋ฏ€๋กœ GIT์— ์˜ํ•ด ํŠธ๋ž˜ํ‚น๋˜๋Š” ๊ฐ ํŒŒ์ผ์˜ ๋ฒ„์ „์„ ์ถ”์ ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

6.1 ์ถ”๊ฐ€ํ•˜๊ณ  ์ปค๋ฐ‹ํ•˜๊ธฐ(git add์™€ git commit)

๋ณต์žกํ•˜๊ฒŒ ๋“ค๋ฆด์ง€ ๋ชจ๋ฅด์ง€๋งŒ, ๋ฒ„์ „ ์ œ์–ด ํ๋ฆ„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ค๋‹ค. ์›ํ•˜๋Š” ์ˆ˜์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฏ€๋กœ, ์šฐ๋ฆฌ๋Š” ์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์ปค๋ฐ‹ํ•˜๊ณ ์ž ํ•˜๋Š” ๋‹จ๊ณ„์— ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค:

git add [filename]

 

git add -A : ๋ชจ๋“  ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง€์— ํ•œ ๋ฒˆ์— ์ถ”๊ฐ€
git add *. [extensão-do-arquivo] : ํŠน์ • ์ต์Šคํ…์…˜ ํŒŒ์ผ์˜ ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง€์— ํ•œ ๋ฒˆ์— ์ถ”๊ฐ€ (git add *.html ๊ณผ ๊ฐ™์ด)

 

 

์šฐ๋ฆฌ๋Š” git status ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ธ์ œ๋“ ์ง€ ํ˜„์žฌ ๋กœ์ปฌ ์ €์žฅ์†Œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค:

 

 

์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“  ํ›„ ์ €์žฅ์†Œ ๋‚ด์—์„œ git status๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ƒˆ ํŒŒ์ผ์ด "Untracked(์ถ”์ ๋˜์ง€ ์•Š์Œ)"์œผ๋กœ ํ‘œ์‹œ๋œ๋‹ค. ์ฆ‰, ์ด ํŒŒ์ผ์€ ์ƒˆ๋กœ์šด ๊ฒƒ์ด๋ฉฐ GIT์— ์˜ํ•ด ์ถ”์ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ์ปค๋ฐ‹์—๋ผ๋„ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

 

GIT๊ฐ€ ์ €์žฅ์†Œ ๋‚ด์˜ ํŠน์ • ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ ๋ฌด์‹œํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋ฃจํŠธ ํด๋”์— .gitignore๋ผ๋Š” ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ณ , ๊ทธ ์•ˆ์—์„œ ๋ฌด์‹œํ•ด์•ผ ํ•  ํŒŒ์ผ์ด๋‚˜ ํด๋”์˜ ์ด๋ฆ„์„ ์ ์œผ๋ฉด ๋œ๋‹ค.

์ฃผ์˜: ๋ฌด์‹œ๋œ ํŒŒ์ผ๊ณผ ํด๋”๋Š” ๋” ์ด์ƒ GIT ํŠธ๋ž™์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์œผ๋ฉฐ, ์‹ฌ์ง€์–ด "Untracked"๋กœ๋„ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ถ”์ ์„ ์žฌ์„ค์ •ํ•˜๋ ค๋ฉด .gitignore ํŒŒ์ผ์—์„œ ์›ํ•˜๋Š” ์ด๋ฆ„์„ ์‚ญ์ œํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

 

 

ํŒŒ์ผ์„ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด git add ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•  ํŒŒ์ผ์˜ ์ด๋ฆ„("index.html")์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค:

 

 

 

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ git status ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ์ƒˆ ํŒŒ์ผ์ด "stage"์— ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์ตœ์ข…์ ์œผ๋กœ ๋‹ค์Œ ์ปค๋ฐ‹์—์„œ ๋ณด๋‚ผ ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๊ณ , ์ด๋Š” ์•„๋ž˜ ๋ช…๋ น์„ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค:

 

git commit -m "[descriptive-message]"

 

์ปค๋ฐ‹์€ ๊ณ ์œ  ID(ํ•ด์‹œ ์ฝ”๋“œ)๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. ์ฆ‰, ์ปค๋ฐ‹์€ ํ™•์ธ๋˜๋ฉด ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.

git commit -a: ์ง์ ‘ ์ปค๋ฐ‹์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ๋ชจ๋“  ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง€์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ปค๋ฐ‹ํ•œ๋‹ค.

 

ํŒŒ์ผ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ปค๋ฐ‹ํ•œ ํ›„ git status๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์„ ํ†ตํ•ด ๋ชจ๋“  ์ˆ˜์ • ์‚ฌํ•ญ์ด ๋กœ์ปฌ ์ €์žฅ์†Œ์— ํšจ๊ณผ์ ์œผ๋กœ ์ €์žฅ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ ์—…๋กœ๋“œํ•  ์ˆ˜์ •๋œ ํŒŒ์ผ์ด ์—†์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 

๋˜ํ•œ ํ•ด์‹œ ์ฝ”๋“œ, ๋ธŒ๋žœ์น˜, ์ž‘์„ฑ์ž, ๋‚ ์งœ ๋“ฑ ๋ชจ๋“  ์ปค๋ฐ‹์˜ ์ผ๋ถ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” git log ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด ์ €์žฅ์†Œ์˜ ์ปค๋ฐ‹ ๋กœ๊ทธ๋ฅผ ๊ฒ€ํ† ํ•ด ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์ด ๋ชจ๋“  ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ์ƒˆ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ˆ˜์ •ํ•œ ํ›„ ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์„ ๋งŒ๋“ค์–ด ๋กœ์ปฌ ์ €์žฅ์†Œ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

 

 

git log -N : ๋งˆ์ง€๋ง‰ N๊ฐœ์˜ ์ปค๋ฐ‹์ด ํฌํ•จ๋œ log๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.
git log [branch-A] [branch-B]: "branch-B"์—๋Š” ์žˆ์ง€๋งŒ "A"์—๋Š” ์—†๋Š” ์ปค๋ฐ‹ ๋กœ๊ทธ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.
git log --follow [filename]: ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•œ ๊ฒฝ์šฐ์—๋„ ์ง€์ •ํ•œ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•œ ์ปค๋ฐ‹ ๋กœ๊ทธ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.
git diff: ์ €์žฅ์†Œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „๊ณผ ๋น„๊ตํ•˜์—ฌ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์„ ๋‚˜์—ดํ•œ๋‹ค.
git diff [nome-do-arquivo]: ์ €์žฅ์†Œ์—์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ง€์ •๋œ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‚˜์—ดํ•œ๋‹ค.

 

6.2 ์ปค๋ฐ‹ ์ „๊ณผ ํ›„์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ทจ์†Œํ•˜๊ธฐ

์ปค๋ฐ‹์ด ์ด๋ฃจ์–ด์ง€๊ธฐ ์ „์— ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์ด๋ฃจ์–ด์ง„ ๋ชจ๋“  ๋ณ€๊ฒฝ์€ ์ทจ์†Œํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ปค๋ฐ‹์ด ํ•œ ๋ฒˆ ์ด๋ฃจ์–ด์ง€๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. ์ปค๋ฐ‹์€ ๋ถˆ๋ณ€์˜ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋ฐ‹์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํŽธ์ง‘ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ ๋ณ€๊ฒฝ์„ ์ทจ์†Œํ•˜๋Š” ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ด์ „ ์ปค๋ฐ‹์—์„œ ์ž˜๋ชป๋œ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋Š ์ชฝ์ด๋“  ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ ๋ช…๋ น ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค:

 

git checkout -- [filename]
# ์ปค๋ฐ‹ ์ „์— ๋กœ์ปฌ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ๊ธฐ(๋Œ์ดํ‚ฌ ์ˆ˜ ์—†๋Š” ์ž‘์—…)

 

git reset --hard HEAD
# ์Šคํ…Œ์ด์ง€ ๋‹จ๊ณ„(์ปค๋ฐ‹ ์ „)์— ์žˆ๋Š” ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ํ๊ธฐ

 

git reset --hard HEAD~1
# ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ˆ˜ํ–‰ํ•œ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์„ ํ๊ธฐ(๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹๋งŒ ํ•ด๋‹น)

 

git commit --amend
# ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์ˆ˜ํ–‰ํ•œ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์„ ๋Œ€์ฒดํ•˜์—ฌ ์ƒˆ ์ปค๋ฐ‹์„ ์ž‘์„ฑ

 

git revert [commit-hash]
# ์ง€์ •ํ•œ ์ปค๋ฐ‹์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋˜๋Œ๋ฆฌ๋Š” ์ƒˆ ์ปค๋ฐ‹์„ ์ž‘์„ฑ

 


 

7. ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ

๋ธŒ๋žœ์น˜๋Š” ์ €์žฅ์†Œ์˜ ๊ฐ€์ง€์น˜๊ธฐ(ramification)์— ์ง€๋‚˜์ง€ ์•Š์œผ๋ฉฐ, ์ง€๊ธˆ๊นŒ์ง€ ๋ชจ๋“  ์ž‘์—…์€ ๋ธŒ๋žœ์น˜ 'master/main'์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ๋‹ค. 

 

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์ƒ์„ฑ๋œ ์ฒซ ๋ฒˆ์งธ ๋ธŒ๋žœ์น˜๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์ธ master/main ์ด๋‹ค.

 

7.1 ์™œ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

์ฒ˜์Œ์—๋Š” ๋ณ„๊ฒƒ ์•„๋‹Œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ธŒ๋žœ์น˜๋Š” ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์— ๋ง‰๋Œ€ํ•œ ํŒŒ์›Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

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

 

ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ๊ณ  ์ƒˆ๋กœ์šด "ํ…Œ์ŠคํŠธ ๋ฒ„์ „"์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ณธ ์ ์ด ์žˆ๋‹ค๋ฉด, ๋งž๋Š” ๋ง์ด๋‹ค! ์Œ, ๊ฑฐ์˜...

 

GIT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์šฐ๋ฆฌ๋Š” ๋ธŒ๋žœ์น˜๋“ค๋กœ ๋น„์Šทํ•œ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ธŒ๋žœ์น˜์ด๊ธฐ ๋•Œ๋ฌธ์—, ์šฐ๋ฆฌ๋Š” ๋‹จ์ˆœํžˆ "ํ…Œ์ŠคํŠธ"๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์˜ ๋ฒ„์ „์„ ์™„์ „ํžˆ ๊ณ ๋ฆฝ๋œ ๋ธŒ๋žœ์น˜์—์„œ, main ๋ธŒ๋žœ์น˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๋ฐ”๊ฟ€ ์ค€๋น„๋ฅผ ํ•œ๋‹ค.

 

 

 

7.2 ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ (git branch)

๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ master/main ๋ธŒ๋žœ์น˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ์†Œ์˜ ๋ณ‘๋ ฌ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ ์šฐ๋ฆฌ๋Š” ๋‹จ์ˆœํžˆ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค:

 

git branch [branch-name]

 

 

ํŠน์ • ๋ธŒ๋žœ์น˜์˜ ์ด๋ฆ„ ์—†์ด git branch ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ €์žฅ์†Œ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•˜๋ฉฐ, "*"์˜ ํ‘œ์‹œ๋Š” ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ๋ธŒ๋žœ์น˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

git branch test ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— git branch ๋ช…๋ น์€ master ๋ธŒ๋žœ์น˜๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

git checkout [branch-name]

 

git checkout test ๋ช…๋ น์„ ์‹คํ–‰ํ•œ ํ›„ ํ™œ์„ฑ ๋ธŒ๋žœ์น˜๊ฐ€ ์ „ํ™˜๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ์ˆœ๊ฐ„๋ถ€ํ„ฐ ๋ชจ๋“  ์ปค๋ฐ‹๋œ ์ •๋ณด๋Š” ๋ธŒ๋žœ์น˜ master/main ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์ €์žฅ์†Œ์˜ test ๋ธŒ๋žœ์น˜๋กœ ์ „์†ก๋œ๋‹ค.

 

 

ํ•„์š”ํ•œ ๋งŒํผ์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์•„๋ž˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ๋ธŒ๋žœ์น˜์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋‹ค:

git checkout -b [branch-name]
 -> ์ง€์ •๋œ ์ด๋ฆ„์œผ๋กœ ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค๊ณ  ์ง์ ‘ ๊ทธ ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•œ๋‹ค.
git branch -d [branch-name] -> ์ง€์ •ํ•œ branch๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
git branch -m [new-name] -> ํ˜„์žฌ branch์˜ ์ด๋ฆ„์„ ์ง€์ •๋œ ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

 

 

7.3 ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉํ•˜๊ธฐ(git merge)

๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ณ  ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์ด ํ”„๋กœ์ ํŠธ์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š์•˜๋‹ค๊ณ  ํ™•์‹ ํ•œ๋‹ค๋ฉด, ํ˜„์žฌ ๋ธŒ๋žœ์น˜์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜์—ฌ master/main ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค

 

๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ ค๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ›์„ ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

 

git merge [branch-name]
# ์ง€์ •๋œ ๋ธŒ๋žœ์น˜๋ฅผ ํ˜„์žฌ ํ™œ์„ฑ๋œ ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ

 

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” branch 'test'์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— git checkout ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด master ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•˜๋ฉฐ git merge ๋ช…๋ น์–ด๋ฅผ ๋ณ‘ํ•ฉํ•˜๊ณ  ์‹ถ์€ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค. (์—ฌ๊ธฐ์„œ๋Š” 'test')

 

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด test ๋ธŒ๋žœ์น˜์—์„œ ์ˆ˜ํ–‰๋œ ๋ชจ๋“  ์ž‘์—…(์ด ๊ฒฝ์šฐ style.css ํŒŒ์ผ ์ž‘์„ฑ)์ด master ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋œ๋‹ค.

 

 

 

7.4 ๋ณ‘ํ•ฉ ์ถฉ๋Œ

์„œ๋กœ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋ฅผ ๊นƒ ๋จธ์ง€(git merge)๋กœ ๋ณ‘ํ•ฉํ•  ๋•Œ ๋™์ผํ•œ ํ–‰์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜์–ด ๋ณ‘ํ•ฉ์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—์„œ ์ผ๋ถ€ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์ด๋ ‡๊ฒŒ ๋˜๋ฉด git status ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์–ด๋–ค ํŒŒ์ผ์ด ์ถฉ๋Œํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์šฐ๋ฆฌ๋Š” ๋ณ‘ํ•ฉ์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ์–ด๋–ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•ด์•ผ ํ•˜๋Š”์ง€ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒ€ํ† ํ•˜์—ฌ ์ƒํ˜ธ ํ˜ธํ™˜๋˜๋„๋ก ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด GIT๋Š” ์ถฉ๋Œํ•˜๋Š” ํŒŒ์ผ์— ๋งˆ์ปค๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ํ•ด๊ฒฐ์„ ๋•๋Š”๋‹ค.

 

 

 

์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•œ ํ›„ ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ๋‹ค์‹œ ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ ค๋†“๊ณ  ์ƒˆ๋กœ์šด ์ถฉ๋Œ ์—†๋Š” ๋ฒ„์ „์„ ์ปค๋ฐ‹ํ•˜๊ณ  git merge ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ ์—†์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 


 

8. ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋™๊ธฐํ™”

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

 

์ด๋ฅผ ์œ„ํ•ด git push ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด ๋กœ์ปฌ ์ €์žฅ์†Œ๋กœ๋ถ€ํ„ฐ ๋ชจ๋“  ์ปค๋ฐ‹์„ ์›๊ฒฝ ์ €์žฅ์†Œ๋กœ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋จผ์ € ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 

8.1 ์›๊ฒฉ ์ €์žฅ์†Œ ๊ตฌ์„ฑํ•˜๊ธฐ

 

์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ์œ„ํ•ด Github๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

 

๋จผ์ € GitHub ๊ณ„์ •์—์„œ ๋นˆ ์ €์žฅ์†Œ๋ฅผ ์ƒˆ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค(์ด๋ฆ„์„ ์„ ํƒํ•˜๊ณ  "Creating repository"๋ฅผ ํด๋ฆญํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค) :

 

 

 

๋‹ค์Œ์œผ๋กœ ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋กœ์ปฌ ์ €์žฅ์†Œ์™€์˜ ๊ด€๊ณ„๋ฅผ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์šฐ๋ฆฌ์˜ ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์‹คํ–‰ํ•ด ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 

git remote add origin [remote-repository-url]

 

 

 

 

git remote -v : ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ์˜ URL์„ ๋ณด์—ฌ์ค€๋‹ค.

 

 

์›๊ฒฉ ์ €์žฅ์†Œ๊ฐ€ ์ ์ ˆํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค๋ฉด, ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ์˜ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜ master/main์˜ ์ด๋ฆ„์„ git branch -m main ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด  main์œผ๋กœ ๋ฐ”๊ฟ”์•ผ ํ•œ๋‹ค(๋‹น์‹ ์˜ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜๊ฐ€ ์ด๋ฏธ main์œผ๋กœ ๋ถˆ๋ฆฌ๊ณ  ์žˆ๋‹ค๋ฉด ์ด ๋‹จ๊ณ„๋ฅผ ๋ฌด์‹œํ•˜๋ผ).

 

 

 

์šฐ๋ฆฌ๊ฐ€ push ํ•˜๋Š” ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์™€ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์œ„์˜ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•œ ํ›„ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์ฒ˜์Œ์œผ๋กœ ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค:

 

git push -u origin main

 

 

 

 

git push-u origin main ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ GitHub credentials(์‚ฌ์šฉ์ž ๋ฐ ์•ก์„ธ์Šค ํ† ํฐ)์„ ์ž…๋ ฅํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

๋งŒ์•ฝ Github ์•ก์„ธ์Šค ํ† ํฐ์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅธ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋‚˜์˜ ์•ก์„ธ์Šค ํ† ํฐ์„ ์„ค์ •ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜๋ผ.

GitHub CLI๋ฅผ ์‚ฌ์šฉํ•ด ์ธ์ฆ์„ ๊ตฌ์„ฑํ•จ์œผ๋กœ์จ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

 

 

์ธ์ฆ(Authenticating)์„ ํ•œ ํ›„์—๋Š” git push ์‹คํ–‰์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋˜์–ด์•ผ ํ•˜๊ณ  ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ๋ชจ๋“  ์ปค๋ฐ‹์ด ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋™๊ธฐํ™”๋œ๋‹ค.

 

 

 

 

 

 

8.2  ์ฒ˜์Œ ์ดํ›„ Git push (git push)

 

์œ„์˜ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ ํ›„์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ„๋„์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์—†์ด git push ๋ช…๋ น๋งŒ์œผ๋กœ ์ƒˆ๋กœ์šด ๋™๊ธฐํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

์ด ๊ฒฝ์šฐ github CLI๋ฅผ ์ด์šฉํ•˜์—ฌ git push ๋ช…๋ น ์‹คํ–‰์— ํ•„์š”ํ•œ ์ธ์ฆ์„ ๊ฑด๋„ˆ๋›ฐ์—ˆ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฐฉ๋ฒ•์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 

8.3  ๋กœ์ปฌ ์ €์žฅ์†Œ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ (git pull)

 

๋ถ„์‚ฐ๋œ ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›๊ฒฉ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ (์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์ง์ ‘) ๋กœ์ปฌ ์ €์žฅ์†Œ๊ฐ€ ์˜ค๋ž˜๋œ ์ƒํƒœ์ผ ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ฅผ ๊ณ ๋ คํ•  ๋•Œ, ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์„ ๋™๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋ฉฐ ๋กœ์ปฌ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ญ์ƒ ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•œ๋‹ค:

 

 

git pull

 

 

์ƒˆ๋กœ์šด README.md ํŒŒ์ผ์ด ์šฐ๋ฆฌ์˜ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์ง์ ‘ ์ƒ์„ฑ๋˜์–ด ์šฐ๋ฆฌ์˜ ๋กœ์ปฌ ์ €์žฅ์†Œ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋ผ.

 

 

 

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ git pull์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ๋ถ€ํ„ฐ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋กœ์ปฌ ์ €์žฅ์†Œ ๋‚ด์—์„œ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

์ฒ˜์Œ 7๊ฐœ์˜ ํ–‰์ด git pull ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ git fetch ๋ช…๋ น์˜ return ๊ฐ’์ด๋‹ค. ์ฆ‰, git fetch ๋ช…๋ น์„ ๋จผ์ € ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  git pull ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด GIT๋Š” ๋‘˜ ๋‹ค ํ•จ๊ป˜ ์‹คํ–‰ํ•ด ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐพ์•„ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ๋™๊ธฐํ™”ํ•œ๋‹ค.

git fetch -> ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค์ง€๋งŒ ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ๋™๊ธฐํ™”ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค(git pull์ด ํ•„์š”ํ•จ).

 

 


 

9. ๊ฒฐ๋ก 

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

 


10. ์ฐธ์กฐ

+ Recent posts