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

Welcome! Everything is fine.

[TIL] 220203 ๋ณธ๋ฌธ

TIL

[TIL] 220203

๊ฐœ๋ฐœ๊ณฐ๋ฐœ 2022. 2. 3.
728x90

๐Ÿ’ป Today I Leaned...

๐Ÿ“Œ ์ฝ”ํ‹€๋ฆฐ 3๊ฐ•์œผ๋กœ ๋๋‚ด๊ธฐ - 3ํŽธ ์‹ฌ๋ฆฌํ…Œ์ŠคํŠธ ์•ฑ ๋งŒ๋“ค๊ธฐ

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

๐Ÿ“Œ ์ƒํ™œ์ฝ”๋”ฉ - ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ - Git CLI - ๋ฒ„์ „๊ด€๋ฆฌ

์ €์žฅ์†Œ(repository) ๋งŒ๋“ค๊ธฐ

์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ ํ›„ Git Bash Here๋กœ ๋“ค์–ด๊ฐ€๊ฑฐ๋‚˜, cd ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ํ˜น์€ mkdir ๋ช…๋ น์–ด๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค. ๊ทธ๋ฆฌ๊ณ   git init .  ์ด๋ผ๊ณ  ์น˜๋ฉด ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— .git ์ด๋ผ๋Š” ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ls -al ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด .git ํด๋”๊ฐ€ ์ƒ๊ธด ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ฒ„์ „๊ด€๋ฆฌ ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค.ใ…œใ…

๋ฒ„์ „ ์ƒ์„ฑํ•˜๊ธฐ

โ‘  Working tree โ‘ก Staging Area โ‘ข Repository

โ‘  Working tree

  • ๋ฒ„์ „์ด ๋งŒ๋“ค์–ด์ง€๊ธฐ ์ „ ๋‹จ๊ณ„์˜ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ณณ
  • ์ž‘์—… ํ…Œ์ด๋ธ”

โ‘ก Staging Area

  • ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ํŒŒ์ผ์„ ์˜ฌ๋ ค๋†“๋Š” ๊ณณ
  • ์˜ˆ๋ฅผ ๋“ค์–ด, 10๊ฐœ ์ค‘ 2๊ฐœ์˜ ํŒŒ์ผ๋งŒ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ ๊ทธ 2๊ฐœ๋ฅผ ์˜ฌ๋ ค๋†“๋Š” ๊ณณ

โ‘ข Repository

  • Staging Area์—์„œ ๋งŒ๋“ค์–ด์ง„ ๋ฒ„์ „์ด ์ €์žฅ๋˜๋Š” ๊ณณ
  • git์—๊ฒŒ "๋ฒ„์ „์„ ๋งŒ๋“ค์–ด!"๋ผ๊ณ  ํ•˜๋ฉด, git์€ Staging Area ์œ„์— ์žˆ๋Š” ํŒŒ์ผ์„ ๋ชจ์•„์„œ ํ•˜๋‚˜์˜ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“  ํ›„ repository์— ์ €์žฅ

์ง์ ‘ ์‹ค์Šต์œผ๋กœ ๋ฒ„์ „์„ ์ƒ์„ฑํ•ด๋ดค๋‹ค. ๋จผ์ € hello-git-cli ์œ„์น˜์— nano ๋ช…๋ น์–ด๋กœ hello1.txt ํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋‹ค. nano + ์ƒ์„ฑํ•  ํŒŒ์ผ ์ด๋ฆ„์„ ์น˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜ค๋Š”๋ฐ, ๋‚ด์šฉ์„ ๋‹ค ์ž…๋ ฅํ•˜๊ณ  Ctrl + X ๋ฅผ ๋ˆ„๋ฅธ ๋’ค, Y(Yes)๋ฅผ ๋ˆ„๋ฅด๊ณ , ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋Š”๋ฐ ์™œ ๋‚˜๋Š” Error in /etc/nanorc on line 237: Error expanding /usr/share/nano/*.nanorc: No such file or directory  ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€..์ฐพ์•„๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ํŒŒ์ผ์€ ์ •์ƒ์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ๊ณ , ๋‚ด์šฉ๋„ ์ž˜ ๋“ค์–ด๊ฐ€์„œ ์ผ๋‹จ ๊ทธ๋ƒฅ ์ง„ํ–‰ํ–ˆ๋‹ค. ls -al๋กœ hello1.txt ํŒŒ์ผ์ด ์ž˜ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ cat ๋ช…๋ น์–ด๋Š” ๋’ค์— ๋”ฐ๋ผ์˜ค๋Š” ํŒŒ์ผ ์ด๋ฆ„์˜ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•œ๋‹ค.

ํŒŒ์ผ์„ ๋งŒ๋“  ํ›„ git์˜ ์ƒํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” git status ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ณด๋ฉด No commits yet ์ด๋ผ๊ณ  ๋‚˜์˜ค๋Š”๋ฐ, ์•„์ง ์ปค๋ฐ‹(๋ฒ„์ „)์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋˜ํ•œ Untracked files์€ ๋ฒ„์ „์œผ๋กœ ์•„์ง ๋งŒ๋“ค์ง€ ์•Š์€ ํŒŒ์ผ์ด ์žˆ๋‹ค๋Š” ๋œป์ด๊ณ , ๊ทธ ํŒŒ์ผ์ด hello1.txt ํŒŒ์ผ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. hello1.txt ํŒŒ์ผ์„ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ„์—์„œ ์“ด ๊ฒƒ ์ฒ˜๋Ÿผ Staging Area์— ์˜ฌ๋ ค์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๊ฐ€ add์ด๋‹ค. add๋ฅผ ํ•œ ํ›„ ๋‹ค์‹œ git status๋ฅผ ํ•ด์„œ ๋ณด๋ฉด  Changes to be committed: ๋ผ๋Š” ๋ฌธ์žฅ์ด ๋‚˜์˜จ๋‹ค. ์ปค๋ฐ‹๋˜์–ด์•ผํ•  ํŒŒ์ผ์ด Staging Area์— ์ •์ƒ์ ์œผ๋กœ ์˜ฌ๋ผ๊ฐ„ ๊ฒƒ์ด๋‹ค. ์ด์ œ ์ปค๋ฐ‹์„ ํ•˜๋ฉด ๋˜๋Š”๋ฐ, git commit๋งŒ์„ ์ž…๋ ฅํ•˜๋ฉด ๊ธฐ๋ณธ ์—๋””ํ„ฐ๊ฐ€ ๋œฌ๋‹ค. git commit -m "Message 1"์ฒ˜๋Ÿผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค. ์ปค๋ฐ‹์„ ํ•œ ํ›„ ๋‹ค์‹œ git status๋ฅผ ์ž…๋ ฅํ•˜๋ฉด nothing to commit, working tree clean ์ด๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋œฌ๋‹ค. ์ •์ƒ์ ์œผ๋กœ ์ปค๋ฐ‹์ด ์™„๋ฃŒ๋œ ๊ฒƒ์ด๋‹ค. git log๋ฅผ ํ†ตํ•ด  ์ปค๋ฐ‹ ๊ธฐ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

* git commit์„ ๋ˆŒ๋Ÿฌ์„œ ๊ธฐ๋ณธ ์—๋””ํ„ฐ๊ฐ€ ์—ด๋ ธ๋Š”๋ฐ, ๋น ์ ธ๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅธ๋‹ค๋ฉด  →  i๋ฅผ ๋ˆŒ๋Ÿฌ ๋ฉ”์„ธ์ง€ ํŽธ์ง‘ ํ›„ esc ์ž…๋ ฅ,  : ์ž…๋ ฅ,  wq ์ž…๋ ฅ

๋‹ค์‹œ hello1.txt ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์„œ git status๋ฅผ ํ•ด๋ณด๋ฉด Changes not staged for commit: ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋œฌ๋‹ค. Staging Area์— ์˜ฌ๋ผ์™€ ์žˆ์ง€ ์•Š์€ ์ˆ˜์ •์‚ฌํ•ญ์ด Working tree์— ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.

์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค๊ธฐ

hello1.txt ํŒŒ์ผ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ณ , hello2.txt ํŒŒ์ผ์„ ์ƒˆ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ํŒŒ์ผ์˜ ๊ณตํ†ต์ ์€ Staging Area์— ์žˆ์ง€ ์•Š๋‹ค๋Š” ์ ์ด๋‹ค. ๋‹ค๋งŒ  hello1.txt๋Š” ์ด๋ฏธ 1ํšŒ ์ด์ƒ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— git์ด hello1.txt ํŒŒ์ผ์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๊ณ , hello2.txt ํŒŒ์ผ์€ ํ•œ๋ฒˆ๋„ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•˜์ง€ ์•˜์•˜๊ธฐ ๋•Œ๋ฌธ์— ์—†๋Š” ์…ˆ ์น˜๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๊ด€๋ฆฌ ํ•  ๋Œ€์ƒ์„ git์—๊ฒŒ ์•Œ๋ ค์ค˜์•ผํ•œ๋‹ค.

๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์ด๋ฏธ ํ–ˆ๋“  ์•ˆํ–ˆ๋“ ๊ฐ„์— git add๋ฅผ ํ†ตํ•ด Staging Area์— ์˜ฌ๋ฆฐ๋‹ค. ๋‘ ํŒŒ์ผ ๋ชจ๋‘ ์˜ฌ๋ฆฌ๊ณ  ์ƒํƒœ๋ฅผ ๋ณด๋‹ˆ ๊ธฐ์กด์— ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ–ˆ๋˜ hello1.txt๋Š” modified, ์ƒˆ๋กœ์šด hello2.txt ํŒŒ์ผ์€ new file์ด๋ผ๊ณ  ๋œจ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

git log --stat ๋ช…๋ น์–ด๋กœ ๊ฐ๊ฐ์˜ ๋ฒ„์ „ ๋ณ„๋กœ ์–ด๋–ค ํŒŒ์ผ์ด ์—ฐ๊ด€๋˜์–ด์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ช‡ ์ค„์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€, ๋ช‡ ๊ฐœ์˜ ํŒŒ์ผ์ด ์ถ”๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TIL] 220205  (0) 2022.02.06
[TIL] 220204  (0) 2022.02.04
[TIL] 220130  (0) 2022.01.30
[TIL] 220128  (0) 2022.01.28
[TIL] 220127  (0) 2022.01.27