๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daehyunii's Dev-blog

03. Commitํ•˜๊ธฐ(๋ฒ„์ „ ๋งŒ๋“ค๊ธฐ) ๋ณธ๋ฌธ

๐Ÿ“š Language & CS knowledge/Git & GitHub

03. Commitํ•˜๊ธฐ(๋ฒ„์ „ ๋งŒ๋“ค๊ธฐ)

Daehyunii 2022. 10. 7. 17:06

01. ๋ณ€ํ™”๋“ค์„ commit ํ•˜๊ธฐ(๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค๊ธฐ)

 

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

 

<๋ช…๋ น์–ด> git add (ํŒŒ์ผ๋ช….ํ™•์žฅ์ž) - ๊นƒ์ด ๊ด€๋ฆฌํ•˜๋Š” ํด๋” ์•ˆ์˜ ํ•ด๋‹น ํŒŒ์ผ์„ ๊นƒ์ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•œ๋‹ค.

<๋ช…๋ น์–ด> git add . - ๊นƒ์ด ๊ด€๋ฆฌํ•˜๋Š” ํด๋” ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ ๊นƒ์ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•œ๋‹ค.

 

  ์œ„์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ์•„์ง ๊นƒ์ด ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์ง€ ์•Š์€ ํŒŒ์ผ๋“ค์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๊นƒ์ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์–ด ์ค„ ์ˆ˜ ์žˆ๋‹ค. ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

<๋ช…๋ น์–ด> git commit - ๊นƒ์ด ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ํด๋”์˜ ํ˜„ ์ƒํƒœ๋ฅผ ํ•˜๋‚˜์˜ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ ๋‹ค.(๋ณดํ†ต ์ปค๋ฐ‹ํ•œ๋‹ค๊ณ  ํ‘œํ˜„ํ•œ๋‹ค)

 

  ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ์œ„์˜ ๋ช…๋ น์–ด๋กœ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด terminal์— ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ์„ค๋ช…์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

 

git commit์„ ํ•œ ๊ฒฝ์šฐ

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

 

์ž…๋ ฅ ์‹œ์ž‘   i
์ž…๋ ฅ ์ข…๋ฃŒ   esc
์ €์žฅ ์—†์ด ์ข…๋ฃŒ   :q
์ €์žฅ ์—†์ด ๊ฐ•์ œ์ข…๋ฃŒ   :q!
์ €์žฅํ•˜๊ณ  ์ข…๋ฃŒ   :wq
์œ„๋กœ ์Šคํฌ๋กค   k
์•„๋ž˜๋กœ ์Šคํฌ๋กค   j

  ์ด์ œ ๋‹ค์‹œ ๋‚ด์šฉ์œผ๋กœ ๋Œ์•„๊ฐ€ ๋ณด์ž๋ฉด ํ˜„์žฌ git commit ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” vim ๋ชจ๋“œ๊ฐ€ ๋˜๋Š”๋ฐ ์ด๋•Œ i ๋‹จ์ถ•ํ‚ค๋ฅผ ํ†ตํ•ด ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์ž…๋ ฅํ•˜๊ณ  esc ๋‹จ์ถ•ํ‚ค๋ฅผ ํ†ตํ•ด ์ž…๋ ฅ์„ ์ข…๋ฃŒํ•˜๊ณ  :wq ๋‹จ์ถ•ํ‚ค๋ฅผ ํ†ตํ•ด ์ €์žฅํ•˜๊ณ  ์ข…๋ฃŒํ•˜๊ฒŒ ๋˜๋ฉด ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด ์ƒˆ๋กœ ์ƒ์„ฑ๋˜๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฐ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์„œ ๊ณ„์†ํ•ด์„œ ์—…๋ฐ์ดํŠธ์™€ ๋ฒ„์ „๋“ค์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์ €์žฅ๋œ commit ๋‚ด์šฉ๋“ค์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

<๋ช…๋ น์–ด> git log - ํ•ด๋‹น ํด๋”์˜ ๋ฒ„์ „์„ ํ™•์ธํ•˜๊ธฐ(๊ณผ๊ฑฐ ๋ฒ„์ „๋“ค๋„ ๋ชจ๋‘ ๋‚˜์˜ด)

 

git log๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ•ด๋‹น ํด๋”์˜ ๋ฒ„์ „๋“ค ํ™•์ธํ•˜๊ธฐ

 

์ถ”๊ฐ€์ ์œผ๋กœ commitํ•˜๊ณ  commit ๋ฉ”์„ธ์ง€๋ฅผ ํ•˜๋‚˜ ํ•˜๋‚˜ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ commitํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋“ค์ด ์žˆ๋‹ค.

 

<๋ช…๋ น์–ด> git commit -m "์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€ ์ž…๋ ฅ" - ์ž…๋ ฅํ•œ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋กœ ๋ฐ”๋กœ ๋ฒ„์ „์ด ๋งŒ๋“ค์–ด์ง

<๋ช…๋ น์–ด> git commit -am "์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€ ์ž…๋ ฅ" - git add์™€ git commit์ด ํ•œ ๋ฒˆ์— ์ด๋ค„์ง(์ž…๋ ฅํ•œ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋กœ), ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ํŒŒ์ผ์ด ์—†์„ ๋•Œ ํ•œ์ •ํ•ด์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ.