๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป Deep Wide Programming/Git & Github

[SOPT, ์ง€์˜ฅ์˜ ๊นƒํ„ฐ๋””] Git, Github ์Šคํ„ฐ๋”” 1์ผ์ฐจ

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ์˜ค๋Š˜ ์Šคํ„ฐ๋””์˜ ๋ชฉ์ : ๊นƒ์—์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…, ๊นƒํ—ˆ๋ธŒ์—์„œ ํ•˜๋Š” ์ž‘์—…์˜ ์ฐจ์ด๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ

 

๊นƒ ์Šคํ„ฐ๋””์žฅ ๋ช…์ฃผ์˜ PT

 

 

๐Ÿ“Œ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ(VCS) 

Git, Github

๐Ÿ‘‰CI : ๋‚ด๊ฐ€ ์ง€๊ธˆ ํ•˜๋Š” ์ž‘์—…์ด ์ด์ „ ์ž‘์—…์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ง€์†์ ์ธ ๊ฒ€์ฆ (์‹ ๊ธฐ๋Šฅ ์ถ”๊ฐ€์‹œ ์˜ˆ์ „ ๊ธฐ๋Šฅ์ด ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ณผ์ •)

๐Ÿ‘‰CD :์ปค๋ฐ‹๋งŒ ํ•˜๋ฉด, ์•Œ์•„์„œ Deployํ•ด์ฃผ๋Š” ์ž‘์—… 

 

Git, Github์˜ ์ฐจ์ด์ 

 

 

๐Ÿ‘‰Git: ๋‹ค๋ฅธ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๊ณ (๋„คํŠธ์›Œํฌ ์—†์ด) ๋กœ์ปฌ์—์„œ ์ €์žฅ์†Œ(์†Œ์Šค ์ฝ”๋“œ๋“ค์„ ๋ชจ๋‘ ์ €์žฅํ•ด๋†“๋Š” ๊ณณ)๋ฅผ ๋งŒ๋“ค๊ณ , ๋˜๋Œ๋ฆฌ๊ณ  ๋“ฑ์˜ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ. 

๐Ÿ‘‰Github:(์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๊ฐœ๋…) ์ƒˆ๋กœ์šด ์ž‘์—…์„ ์„œ๋ฒ„์— push(์ €์žฅ)ํ•ด์ฃผ๋Š” ๊ฒƒ_push๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์˜ ์ €์žฅ์†Œ์™€ ๋™๊ธฐํ™”๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ. (commit์€ ๋กœ์ปฌ์˜ ์ €์žฅ์†Œ์— ์ €์žฅํ•ด์ฃผ๋Š” ๊ฒƒ)

 

๐Ÿ“ŒTerminal์„ ์ด์šฉํ•ด ์‹ค์Šตํ•˜๊ธฐ

๐Ÿ‘‰ํ„ฐ๋ฏธ๋„์—์„œ git ์„ค์น˜ ํ™•์ธ

git_study ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ , ํ•ด๋‹น ํด๋” ์œ„์น˜ ๋‚ด์—์„œ ๋ช…๋ น์–ด git init์„ ํ†ตํ•ด ๋นˆ Git ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

 

 

 

๐Ÿ‘‰์ €์žฅ์†Œ git ํ™•์ธ

git init์ดํ›„, git ์ €์žฅ์†Œ๊ฐ€ ์ž˜ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ๋ช…๋ น์–ด 'ls -a'๋กœ ํ™•์ธํ•œ๋‹ค. 

*๋ช…๋ น์–ด ls -a : ์ˆจ๊น€ํŒŒ์ผ์„ ํฌํ•จํ•œ ๊ฒฝ๋กœ ์•ˆ์˜ ๋ชจ๋“  ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ‘œ์‹œ.

(ls ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋Š” ๋ณด์ด์ง€ ์•Š๋˜ ์ •๋ณด๋“ค๊นŒ์ง€ ํ™•์ธ ๊ฐ€๋Šฅโœ…)

 

๐Ÿ‘‰git ์ €์žฅ์†Œ๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ํ•ด๋‹น ํด๋” ์•ˆ์— ํ…Œ์ŠคํŠธ์šฉ ํ…์ŠคํŠธ ํŒŒ์ผ ์ƒ์„ฑ  & "git add" to track

 

 

 

๐Ÿ‘‰git commit & git log

 

 

 

๐Ÿ“Œ๋™์ผํ•œ ์ž‘์—…์„ GitKraken์—์„œ ์ˆ˜ํ–‰ํ•˜๊ธฐ

๐Ÿ‘‰GitKraken ์„ค์น˜

์‚ฌ์šฉ๊ฒฝํ—˜์ด ์žˆ๋Š” ๊นƒํ—ˆ๋ธŒ ๋ฐ์Šคํฌํƒ‘์ด ์•„๋‹Œ, gitKraken์„ ์‚ฌ์šฉํ•ด๋ณด๊ณ ์ž ์„ค์น˜ํ–ˆ๋‹ค. (ํ›จ์”ฌ ์ง๊ด€์ ์ด๊ณ  ๊ฐ„์ง€๊ฐ€ ๋‚œ๋‹ค๋Š” ๋ง์— ํ™€๋ ค..)

 

 

๐Ÿ‘‰Open a repo >์•ž์„œ์„œ ์ž‘์—…ํ•˜๋˜ ํด๋”๋ฅผ ์—ฐ๋‹ค.

๋™์ผํ•œ ํด๋”์— ์ƒˆ๋กœ์šด ํŒŒ์ผ b.txt๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. ์šฐ์ธก Unstagged Files์— ์œ„์น˜ํ•œ ์ƒˆ๋กœ์šด ํŒŒ์ผ. 

 

 

 

๐Ÿ“ŒProcess ์ดํ•ดํ•˜๊ธฐ

 

 

โ‡ขremote repository = Github

โ‡ข๋‚˜๋จธ์ง€๋Š” Git์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค

โ‡ขWorkspace : ํŠธ๋ž˜ํ‚นํ•˜๊ธฐ ์ „์—๋„, ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ๊ทธ ์ž์ฒด๊ฐ€ workspace

 

๐Ÿ“Œํ˜‘์—… ์‹œ, ํ•„์š”ํ•œ ๊ฒƒ๋“ค

1) branch

2) ์„œ๋กœ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— pull๊ณผ ๊ฐ™์€ ๊ณผ์ • ์ถ”๊ฐ€

 

๐Ÿ“Œhead : ๋‹น์žฅ ๋‚ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŒŒ์ผ์˜ ์ƒํƒœ

 

 

๐Ÿ‘‰๋‘๋ฒˆ์งธ ํŒŒ์ผ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ -> Check out this commit 

 

 

 

๐Ÿ‘‰๋‘๋ฒˆ์งธ ํŒŒ์ผ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ -> Check out master 

 

 

๐Ÿ‘‰terminal์—์„œ ํ™•์ธํ•˜๊ธฐ

 

 

 

 

๐Ÿ“Œ๋˜๋Œ์•„๊ธฐ Reset

 

 

๐Ÿ‘‰Hard: firstํŒŒ์ผ๊ณผ ์™„์ „ ์ผ์น˜์‹œํ‚จ๋‹ค.

๐Ÿ‘‰soft : commit๋งŒ ์ด์ „์œผ๋กœ  -> stagedํŒŒ์ผ์— ์œ„์น˜

๐Ÿ‘‰mixed : add๊นŒ์ง€ ๋˜๋Œ๋ฆฐ๋‹ค -> unstagedํŒŒ์ผ์— ์œ„์น˜

โœจ๋””ํดํŠธ = mixed

 

๐Ÿ“ŒRevert

A ๋ผ๋Š” ์ปค๋ฐ‹ ์ƒํƒœ๊ฐ€ ์žˆ๊ณ 

B ๋ฅผ ์ด๋ฏธ ๊นƒํ—ˆ๋ธŒ์— ํ‘ธ์‹œ๋ฅผ ํ•ด๋ฒ„๋ ธ์„ ๋•Œ, B๋ฅผ ๋˜๋Œ๋ฆด ์ˆ˜ ์—†๋‹ค. (์ด๋ ฅ์ด ๋‚จ๊ฒŒ๋จ)

๊ทธ๋Ÿด ๋•Œ, B์— ๋Œ€ํ•œ Revert๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ. 

 

๐Ÿ“ŒRevert์™€ Reset์˜ ์ฐจ์ด 

 

 

 

Git์œผ๋กœ commit์„ ํ•˜๋ฉด commit ์ด๋ ฅ์ด ๋‚จ๋Š”๋‹ค. ์ด ๋•Œ Revert๋กœ ๋˜๋Œ๋ฆฌ๋ฉด commit ์ด๋ ฅ์„ ์œ ์ง€ํ•œ ์ฑ„๋กœ ํŒŒ์ผ๋‚ด์šฉ์„ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ, Reset์œผ๋กœ ๋˜๋Œ๋ฆด ๊ฒฝ์šฐ commit ์ด๋ ฅ์„ ์‚ญ์ œํ•œ ์ฑ„ ํŒŒ์ผ๋‚ด์šฉ์„ ๋˜๋Œ๋ฆฐ๋‹ค. 

728x90
๋ฐ˜์‘ํ˜•