Bibi's DevLog ๐Ÿค“๐ŸŽ

[์ง€์˜ฅ์—์„œ ์˜จ Git] 1. ๊นƒ ์‹œ์ž‘ํ•˜๊ธฐ - ๊ฐœ๋…, ๊นƒ ๋ช…๋ น์–ด(๊ธฐ์ดˆ), ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด(๊ธฐ์ดˆ), ๋น”(๊ธฐ์ดˆ) ๋ณธ๋ฌธ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Git & GIthub ๊นƒ๊ณผ ๊นƒํ—ˆ๋ธŒ

[์ง€์˜ฅ์—์„œ ์˜จ Git] 1. ๊นƒ ์‹œ์ž‘ํ•˜๊ธฐ - ๊ฐœ๋…, ๊นƒ ๋ช…๋ น์–ด(๊ธฐ์ดˆ), ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด(๊ธฐ์ดˆ), ๋น”(๊ธฐ์ดˆ)

๋น„๋น„ bibi 2021. 2. 9. 00:09

1. ๊นƒ ์‹œ์ž‘ํ•˜๊ธฐ

Git์ด๋ž€?

(์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”) ๋ถ„์‚ฐํ˜• ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ.

์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด ์ค€๋‹ค.

Git์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€?

์ปค๋ฐ‹์ด๋‹ค.

์ปค๋ฐ‹ : ๋‚˜ ๋˜๋Š” ํŒ€์› ๋ˆ„๊ตฐ๊ฐ€์˜ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์˜ ์Šค๋ƒ…์ƒท์ด๋‹ค.

๊ฒŒ์ž„์œผ๋กœ ์น˜๋ฉด ์„ธ์ด๋ธŒํฌ์ธํŠธ.

์ปค๋ฐ‹์„ ํ•˜๊ณ  ๋‚˜๋ฉด ์–ธ์ œ๋“ ์ง€ ๊ทธ ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

  • Git์€ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋งŒ์ด ์•„๋‹ˆ๋ผ, ์ „์ฒด ๋‚ด์šฉ์„ ์ €์žฅํ•œ๋‹ค.

Git ๊ฐœ๋…

  • ์›Œํ‚นํŠธ๋ฆฌ : ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ. ์šฐ๋ฆฌ๊ฐ€ ์ž‘์—…ํ•˜๋Š” ๊ณต๊ฐ„(ํด๋”). Git์˜ ์ž…์žฅ์—์„œ๋Š” ์ƒŒ๋“œ๋ฐ•์Šค

  • ์Šคํ…Œ์ด์ง€(์ธ๋ฑ์Šค) : ์ปค๋ฐ‹์„ ์ค€๋น„ํ•˜๋Š” ๊ณต๊ฐ„.

  • ์ปค๋ฐ‹ : ์Šคํ…Œ์ด์ง€์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๊ฐ€์ง€๊ณ  ์ปค๋ฐ‹์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

    • ์ปค๋ฐ‹ํ•  ๋Œ€์ƒ์€ ์„ ํƒํ•  ์ˆ˜ ์—†๋‹ค. (์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ผ๊ฐ„ ๋ชจ๋“  ํŒŒ์ผ์€ ์ปค๋ฐ‹๋œ๋‹ค)
    • ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ผ๊ฐˆ ๋Œ€์ƒ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์„ ๋ฟ์ด๋‹ค.
  • ๋กœ์ปฌ์ €์žฅ์†Œ : .git๋””๋ ‰ํ† ๋ฆฌ. ์ปค๋ฐ‹์˜ ์ง‘ํ•ฉ์ด๋‹ค.

    • .gitํด๋”์—๋Š” ์Šค๋ƒ…์ƒท๋“ค์ด ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋กœ์ปฌ์ €์žฅ์†Œ์ด๋‹ค.
  • ์›๊ฒฉ์ €์žฅ์†Œ : ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์„œ๋ฒ„์— ๋ณต์‚ฌํ•œ ๊ฒƒ (๋กœ์ปฌ ์ €์žฅ์†Œ == ์›๊ฒฉ ์ €์žฅ์†Œ)

  • ๋ธŒ๋žœ์น˜ : ์ž‘์—…์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.

    • ๋ธŒ๋žœ์น˜๋Š” ์‚ฌ์‹ค ์ปค๋ฐ‹์˜ ์ฐธ์กฐ์ผ ๋ฟ์ด๋‹ค. (์ปค๋ฐ‹์— ์ด๋ฆ„ ๋ถ™์ธ ๊ฒƒ์ผ ๋ฟ)
    • HEAD : ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋ธŒ๋žœ์น˜. HEAD๋Š” ๋ธŒ๋žœ์น˜์˜ ์ฐธ์กฐ์ด๋‹ค.

์™œ Git์„ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

๋ฒ„์ „ ๊ด€๋ฆฌ, ๋ฐฑ์—…, ํ˜‘์—…์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

  • ๋ฒ„์ „ ๊ด€๋ฆฌ Version control
    • ๋ฌธ์„œ๋ฅผ ์–ธ์ œ ์ˆ˜์ •ํ–ˆ๊ณ  ์–ด๋–ค ๋ถ€๋ถ„์„ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€ ๊ธฐ๋กํ•จ.
  • ๋ฐฑ์—… Backup
    • ํ•„์š”์„ฑ
      ์ž๋ฃŒ๋ฅผ ์ปดํ“จํ„ฐ์—๋งŒ ์ €์žฅํ•œ๋‹ค๋ฉด ์–ธ์  ๊ฐ€๋Š” ๊ทธ ์ž๋ฃŒ๊ฐ€ ์œ ์‹ค๋œ๋‹ค.
      ๋‚ด ์ปดํ“จํ„ฐ๋Š” ์–ธ์  ๊ฐ€๋Š” ๊ณ ์žฅ๋‚˜๊ณ , ๊ทธ๊ฒŒ ์–ธ์ œ๊ฐ€ ๋  ์ง€๋Š” ๋ชจ๋ฅธ๋‹ค.
      ๋”ฐ๋ผ์„œ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—…์„ ํ•ด์•ผ ํ•จ.
    • ๋ฐฑ์—…์ด๋ž€? ์ปดํ“จํ„ฐ์˜ ์ž๋ฃŒ๋ฅผ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ๋ณต์ œํ•˜๋Š” ๊ฒƒ
      • ์›๊ฒฉ ์ €์žฅ์†Œ(์˜จ๋ผ์ธ ์ €์žฅ์†Œ)
        : (๊นƒํ—ˆ๋ธŒGithub์ฒ˜๋Ÿผ) ๊นƒ ํŒŒ์ผ์„ ์œ„ํ•œ ๋ฐฑ์—… ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐ๋„ท ์„œ๋น„์Šค.
  • ํ˜‘์—… Collaboration
    • ๊นƒํ—ˆ๋ธŒ๋ฅผ ํ†ตํ•ด ํ˜‘์—…์ด ์‰ฌ์›Œ์ง„๋‹ค.

๊นƒ ํ”„๋กœ๊ทธ๋žจ์˜ ์ข…๋ฅ˜

๋‹ค์–‘ํ•œ ๊นƒ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์กด์žฌํ•œ๋‹ค - ๊นƒ์„ ์ข€ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์คŒ.

  • ๊นƒํ—ˆ๋ธŒ ๋ฐ์Šคํฌํ†ฑ Github Desktop (GUI - ์ดˆ๊ธ‰)
  • ์†Œ์ŠคํŠธ๋ฆฌ SourceTree (GUI - ๊ณ ๊ธ‰)
  • CLI๋กœ ํ„ฐ๋ฏธ๋„ ์ฐฝ์— ์ง์ ‘ ๋ช…๋ น์„ ์ž…๋ ฅํ•ด ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
    • ๊ธฐ๋ณธ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น๊ณผ ๊นƒ ๋ช…๋ น์–ด๋ฅผ ์™ธ์›Œ์•ผ ํ•œ๋‹ค.
    • ์ต์ˆ™ํ•ด์ง€๋ฉด ํ›จ์”ฌ ๋น ๋ฅด๋‹ค, ์ž๋™ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค, ์„œ๋ฒ„ํ™˜๊ฒฝ์—์„œ ๊นƒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๊นƒ ๋ฐฐ์‹œ Git bash
      : ์œˆ๋„์šฐ์— ๊นƒ์„ ์„ค์น˜ํ•˜๋ฉด ํ•จ๊ป˜ ์„ค์น˜๋จ.
      ๊นƒ์ด ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊นƒ๋ฐฐ์‹œ๋กœ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

์ปค๋งจ๋“œ ๋ผ์ธ vs ํ„ฐ๋ฏธ๋„

: ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ฐฝ์„ ๋œปํ•œ๋‹ค.
์œˆ๋„์šฐ์—์„œ๋Š” ์ปค๋งจ๋“œ๋ผ์ธ(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ), ๋งฅ์—์„œ๋Š” ํ„ฐ๋ฏธ๋„์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๊นƒ ๋ช…๋ น์–ด (๊ธฐ์ดˆ)

  • $ git config : ๊นƒ ์‚ฌ์šฉ์ž ์ •๋ณด ์„ค์ •

    • --global ์˜ต์…˜ : ํ˜„์žฌ ์ปดํ“จํ„ฐ์˜ ๋ชจ๋“  ์ €์žฅ์†Œ์—์„œ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •
    • $ git config --global user.name "์ด๋ฆ„"
    • $ git config --global user.email "์ด๋ฉ”์ผ์ฃผ์†Œ"

๊นƒ ๋ช…๋ น์–ด (๋ฆฌ๋ˆ…์Šค ๊ณตํ†ต)

  • ~ : ํ˜„์žฌ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋‹ค๋Š” ํ‘œ์‹œ.
    (๋””๋ ‰ํ† ๋ฆฌ = ํด๋”)

ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ : /c/Users/์‚ฌ์šฉ์ž์•„์ด๋”” ๋ฅผ ๋‚˜ํƒ€๋ƒ„.

  • pwd : print working directory. ํ˜„์žฌ ์œ„์น˜ ๊ฒฝ๋กœ๋ฅผ ๋‚˜ํƒ€๋ƒ„.
  • ls : list. ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์–ด๋–ค ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•จ.
    • ์ด๋ฆ„ ๋’ค์— /๊ฐ€ ๋ถ™์€ ๊ฒƒ์ด ๋””๋ ‰ํ† ๋ฆฌ์ด๋‹ค.
  • clear : ํ™”๋ฉด์„ ๊นจ๋—์ด ์ •๋ฆฌํ•จ.
  • - : ๋ช…๋ น์— ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ถ™์ž„ํ‘œ.
    • ls -a : all? ์ˆจ๊ธด ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ํ‘œ์‹œ
    • ls -l : ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ƒ์„ธ ์ •๋ณด ํ‘œ์‹œ
    • ls -r : ํŒŒ์ผ ์ •๋ ฌ์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ ํ‘œ์‹œ
    • ls -t : ํŒŒ์ผ์˜ ์ž‘์„ฑ์‹œ๊ฐ„ ์ˆœ์œผ๋กœ ํ‘œ์‹œ(๋‚ด๋ฆผ์ฐจ์ˆœ)
    • ls -la ๋˜๋Š” ls -al์ฒ˜๋Ÿผ ๋‘ ์˜ต์…˜ ํ•จ๊ป˜ ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅ. (์ˆœ์„œ๋Š” ์ƒ๊ด€์—†์Œ)
  • cd : change directory. ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ๋””๋ ‰ํ† ๋ฆฌ ์‚ฌ์ด๋ฅผ ์ด๋™ํ•จ.
    • cd .. : ํ˜„์žฌ ์œ„์น˜์—์„œ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
    • cd ํ•˜์œ„๋””๋ ‰ํ† ๋ฆฌ๋ช… : ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
    • cd ~ : ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™

๋ฆฌ๋ˆ…์Šค์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ธฐํ˜ธ

~ : ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ
./ : ํ˜„์žฌ ์ž‘์—…์ค‘์ธ ๋””๋ ‰ํ† ๋ฆฌ
../ : ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ

  • mkdir ํด๋”๋ช… : ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

  • rm ํด๋”๋ช… : remove. ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ

    • ์‚ญ์ œํ•  ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•œ ํ›„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ.
    • rm -r ํด๋”๋ช… : ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ํŒŒ์ผ๊นŒ์ง€ ๋ชจ๋‘ ์‚ญ์ œ (๋””๋ ‰ํ† ๋ฆฌ์ผ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ ๋ถ™์ด๋Š” ์˜ต์…˜)
  • cat ํŒŒ์ผ๋ช… : concatenate(์—ฐ์‡„ํ•˜๋‹ค) ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•จ

  • cat ํŒŒ์ผ1, ํŒŒ์ผ2 .. ํŒŒ์ผn > ์ƒˆํŒŒ์ผ : ํŒŒ์ผ1, 2 .. n๋“ค์„ ์ฐจ๋ก€๋กœ ์—ฐ๊ฒฐํ•ด ์ƒˆํŒŒ์ผ๋กœ ๋งŒ๋“ฆ

  • cat ํŒŒ์ผ1 >> ํŒŒ์ผ2 : ํŒŒ์ผ1 ๋‚ด์šฉ์„ ํŒŒ์ผ2๋์— ์—ฐ๊ฒฐํ•จ

๋น” vim

vim : ๋ฆฌ๋ˆ…์Šค์˜ ๊ธฐ๋ณธ ํŽธ์ง‘๊ธฐ. (์œˆ๋„์šฐ์˜ ๋ฉ”๋ชจ์žฅ์ฒ˜๋Ÿผ)

  • ํ„ฐ๋ฏธ๋„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ํŽธ์ง‘๊ธฐ.

  • ํ„ฐ๋ฏธ๋„์ฐฝ์—์„œ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ๋งŒ์œผ๋กœ ์‚ฌ์šฉํ•จ.

๋ชจ๋“œ

๋น”์€ ์ฒ˜์Œ์— ex๋ชจ๋“œ๋กœ ์‹คํ–‰๋œ๋‹ค.

  • ex๋ชจ๋“œ : Esc๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ์ „ํ™˜. ํŒŒ์ผ์ €์žฅ, ์ข…๋ฃŒ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ.
  • ์ž…๋ ฅ ๋ชจ๋“œ : i๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ์ „ํ™˜. ํ…์ŠคํŠธ ์ž…๋ ฅ ๋ฐ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•œ ์ƒํƒœ.

๋น” ๋ช…๋ น์–ด

  • vim ํŒŒ์ผ๋ช…
    : ํ•ด๋‹น ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด ๊ทธ ํŒŒ์ผ์„ vim์œผ๋กœ ์—ฐ๋‹ค.
    : ํ•ด๋‹น ํŒŒ์ผ์ด ์—†๋‹ค๋ฉด ๊ทธ ์ด๋ฆ„์œผ๋กœ ์ƒˆ๋กœ์šด ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค๊ณ  vim์œผ๋กœ ์—ฐ๋‹ค.
  • i : ์ž…๋ ฅ ๋ชจ๋“œ๋กœ ์ „ํ™˜
  • Esc : ex๋ชจ๋“œ๋กœ ์ „ํ™˜
    • : : ex๋ชจ๋“œ์—์„œ ๋ช…๋ น์–ด ์ž…๋ ฅ
      ex๋ชจ๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์€ ๋ชจ๋‘ :๋กœ ์‹œ์ž‘ํ•จ.
  • :wq : ์ €์žฅ ๋ฐ ์ข…๋ฃŒ
  • :wq ํŒŒ์ผ๋ช… : ํŒŒ์ผ๋ช… ์œผ๋กœ ์ €์žฅ ๋ฐ ์ข…๋ฃŒ
    • :w : write. ๋ฌธ์„œ๋ฅผ ์ €์žฅํ•จ
    • :q : quite. ํŽธ์ง‘๊ธฐ๋ฅผ ์ข…๋ฃŒํ•จ