๐Ÿ” Archive/Git

[2020.2.18] Git bash ์ตํžˆ๊ธฐ

YoungRock 2020. 2. 18. 15:38
๋”๋ณด๊ธฐ

์–ด์ œ ๋Œ€ํ•™ ์ž…ํ•™ ํ›„ ์ฒ˜์Œ์œผ๋กœ ๋…์„œ์‹ค์„ ๋“ฑ๋กํ–ˆ๋‹ค.

์–ด์ œ๋Š” ์ด์ œ ๊นƒํ—ˆ๋ธŒ์— ํฌํ† ํด๋ฆฌ์˜ค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ์ƒํ™œ์ฝ”๋”ฉ ๊นƒํ—ˆ๋ธŒ ๊ฐ•์ขŒ๋ฅผ ๋“ค์œผ๋ฉฐ ๊นƒ์„ ์ตํ˜”๊ณ , ์˜ค๋Š˜๋„ ์ด์–ด์„œ ๊นƒ ๊ณต๋ถ€๋ฅผ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

์š”์ฆ˜ ์‹œ์ฐจ์ ์‘์„ ํ•‘๊ณ„๋กœ ์•„์นจ์—๋„ 1์‹œ์— ์ผ์–ด๋‚˜๋ฉฐ ๋„ˆ๋ฌด ๊ฒŒ์œผ๋ฅด๊ฒŒ ์‚ด๊ณ  ์žˆ์–ด์„œ ๋„ˆ๋ฌด ํ•œ์‹ฌํ–ˆ๋‹ค.

๊ฒฐ๊ตญ 3์‹œ์— ์ง‘์—์„œ ๋‚˜์˜ค๊ธฐ๋ผ๋„ ์„ฑ๊ณตํ–ˆ์œผ๋‹ˆ๊นŒ ์ด์ œ ์ง‘์ค‘ํ•ด์„œ ๊ณต๋ถ€ํ•˜์ž

 


๋”๋ณด๊ธฐ

PLAN

1. ๊นƒ ์ตํžˆ๊ธฐ(์ƒํ™œ์ฝ”๋”ฉ ๊นƒ ๊ฐ•์ขŒ)

+ ๊นƒ ํ—ˆ๋ธŒ README documenting ์ตํžˆ๊ธฐ https://guides.github.com/features/wikis/

+ Markdown https://guides.github.com/features/mastering-markdown/

2. USJ AT ์ˆ˜์—… Final ๊ณผ์ œ ๊นƒ์— ์˜ฌ๋ฆฌ๊ธฐ

3. USJ WEB git readme ํŒŒ์ผ ์ ๊ธฐ

1) Brick game   2) Escape game   3) Phaser (์‹œ์—ฐ์˜์ƒ ์ฐ๊ธฐ)

4. ์‚ฐํƒ€ํ† ์ต ์˜ค๋Š˜์˜ ๊ณต๋ถ€ํ•˜๊ธฐ


NOTE

[์ƒํ™œ์ฝ”๋”ฉ]>[ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ]>[Git CLI - ๋ฒ„์ „๊ด€๋ฆฌ] ์ •๋ฆฌ

1. ๋ฒ„์ „๊ด€๋ฆฌ์˜ ์‹œ์ž‘

ํ‰์†Œ ๊นƒ ๋ฐ์Šคํฌํ†ฑ๋งŒ ์‚ฌ์šฉํ•ด์„œ git bash๋ฅผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ๋ชฐ๋ž๋Š”๋ฐ ๋ช…๋ น์–ด์— ๋Œ€ํ•ด ์‰ฝ๊ณ  ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋‹ค.

  • Git bash ์‹คํ–‰
  • Repository๋ฅผ ๋งŒ๋“ค ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
    (๋‚˜๋Š” OneDrive๋ฅผ ์‚ฌ์šฉํ•ด์„œ /OneDrive/Documents/GitHub๋กœ ์ด๋™ํ–ˆ๋‹ค)
  • hello-git-cli๋ผ๋Š” ๋นˆํด๋” ์ƒ์„ฑ
  • git init . ํ˜„์žฌ ํด๋”๋ฅผ ๊นƒ์—๊ฒŒ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ์‹œํ‚ค๋Š” ๋ช…๋ น์–ด

git init . ์‹คํ–‰๊ฒฐ๊ณผ

  • ๋ฒ„์ „ ์ •๋ณด๋“ค์ด .git ํŒŒ์ผ ์•ˆ์— ์ €์žฅ๋จ => ** .git ์ง€์šฐ๋ฉด ์•ˆ๋Œ

 

2. ๋ฒ„์ „์˜ ์ƒ์„ฑ

- Working tree : ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๊ธฐ ์ „๋‹จ๊ณ„

- Staging Area : ๊นƒ์— ์˜ฌ๋ฆด ํŒŒ์ผ(๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ํŒŒ์ผ)์„ ๋‘๋Š” ๊ณต๊ฐ„ 

- Repository : ๋ฒ„์ „์ด ์ €์žฅ๋˜๋Š” ๊ณณ

(10๊ฐœ์˜ ํŒŒ์ผ์ด working tree์— ์žˆ์œผ๋ฉด 2๊ฐœ๋งŒ Staging Area์— ๋„ฃ์—ˆ์„ ๋•Œ ๊ทธ ์˜ฌ๋ฆฐ 2๊ฐœ์˜ ํŒŒ์ผ๋กœ๋งŒ  Repository์— ๋ฒ„์ „์„ ์ƒ์„ฑํ•œ๋‹ค)

  • ํŒŒ์ผ์ƒ์„ฑ: nano hello1.txt (ํŒŒ์ผ ๋‚ด์šฉ: 1)
  • cat hello1.txt ๋ช…๋ น์–ด๋กœ ํ™•์ธ ๊ฐ€๋Šฅ
    (cat [ํŒŒ์ผ๋ช…] -> ํŒŒ์ผ๋ช…์˜ ๋‚ด์šฉ์„ ์ถœ๋ ฅ)
  • git status

-> ์ถ”์ ๋˜์ง€ ์•Š์€ ํŒŒ์ผ  hello1.txt

  • hello1.txt๋ฅผ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋ฅผ Staging Area์— ์˜ฌ๋ ค์•ผํ•จ
  • git add hello1.txt ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰

๋ฒ„์ „์ด ๋  ์˜ˆ์ •์ธ ํŒŒ์ผ๋“ค์˜ ๋ชฉ๋ก์„ ๋ณด์—ฌ์คŒ

  • git commit((๋ฒ„์ „์„) ์ œ์ถœํ•˜๋‹ค) -m "Message 1"(์ปค๋ฐ‹ ๋ฉ”๋ชจ)

๋” ์ด์ƒ ์˜ฌ๋ฆด ๊ฒƒ์ด ์—†๋‹ค. working tree clean

  • git log : ์—ญ์‚ฌ๋ฅผ ๋ณผ์ˆ˜ ์žˆ์Œ

  • hello1.txt ํŒŒ์ผ ๋‚ด์šฉ์„ ์ˆ˜์ •(ํŒŒ์ผ ๋‚ด์šฉ: 1 2)ํ•˜๊ณ  ์œ„ ๊ณผ์ • ๋ฐ˜๋ณต
    git add hello1.txt -> git commit -m "Message 2" -> git log

git log ์‹คํ–‰๊ฒฐ๊ณผ

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

  • ์ƒˆ๋กœ์šด ํŒŒ์ผ hello2.txt ์ƒ์„ฑ -> git status ํ™•์ธ

  • ๋‘ ํŒŒ์ผ ๋ชจ๋‘ add ํ•œ ํ›„ status ํ™•์ธ

  • ์ปค๋ฐ‹ ํ›„ status์™€ log ํ™•์ธ

์ปค๋ฐ‹ ํ›„ status
์ปค๋ฐ‹ ํ›„ log

  • git log --stat : ํ•˜๋‚˜์˜ ๋ฒ„์ „์— ์–ด๋–ค ํŒŒ์ผ๋“ค์ด ๊ด€๋ จ๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Œ

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

 

4. ๋ฒ„์ „๊ฐ„์˜ ์ฐจ์ด์  ๋น„๊ต

  • hello1.txt ํŒŒ์ผ ๋ณ€๊ฒฝ ํ›„ git diff(difference) ํ™•์ธ
    ๋งˆ์ง€๋ง‰ ๋ฒ„์ „๊ณผ ํ˜„์žฌ working tree ์‚ฌ์ด์˜ ์ฐจ์ด์  ํ™•์ธ ๊ฐ€๋Šฅ

  • git reset --hard ๋ช…๋ น์–ด: ๋งˆ์ง€๋ง‰ ๋ฒ„์ „ ์ดํ›„ ๋ณ€๊ฒฝํ–ˆ๋˜ ๊ฒƒ์ด ๋งˆ์Œ์— ์•ˆ ๋“ค ๋•Œ,
    ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์œผ๋กœ ๋‹ค์‹œ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Œ
  • git log -p(patch) : log์—์„œ ๋ฒ„์ „๊ณผ ๋ฒ„์ „๊ฐ„์˜ ๋‹ค๋ฅธ์ ์ด ๋ฌด์—‡์ธ์ง€ ๋ณด์—ฌ์คŒ

5. checkout๊ณผ ์‹œ๊ฐ„์—ฌํ–‰

  • git checkout [๋ฒ„์ „ ๊ณ ์œ  ๋ฒˆํ˜ธ](ex) 2f986cbef88d30088a44d27daf4dd6498db5115f)
    : repository๊ฐ€ ๊ณ ์œ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ๋ฒ„์ „์œผ๋กœ ๋ฐ”๋€œ
  • repository๋ฅผ ๋‹ค์‹œ ๊ฐ€์žฅ ์ตœ์‹ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด
    => git checkout master

6. ๋ณด์ถฉ Tip

  • ์ง€๊ธˆ๊นŒ์ง€ commit์„ ํ•˜๋ ค๋ฉด ๋ฌด์กฐ๊ฑด add [ํŒŒ์ผ ์ด๋ฆ„]->commit์„ํ•ด์•ผํ–ˆ์Œ
  • git add [๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„] : ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ ์ดํ•˜์˜ ๋ชจ๋“  ํŒŒ์ผ์ด add ๋จ
  • => git add . : ํ˜„์žฌํด๋”์˜ ๋ชจ๋“  ํŒŒ์ผ์ด add ๋จ
  • add ์™€ ์ปค๋ฐ‹์„ ํ•œ๋ฒˆ์— => git commit -am "[์ปค๋ฐ‹ ๋‚ด์šฉ]" (a: add์˜ ์•ฝ์ž)
    -> ๊ทธ๋Ÿฌ๋‚˜ ์ƒˆ๋กœ์šด ํŒŒ์ผ์ด ์žˆ์„ ๋•Œ๋Š” x, ๊ธฐ์กด์— ์ด๋ฏธ add๋œ ์ ์ด ์žˆ๋Š” ํŒŒ์ผ๋“ค๋งŒ ์žˆ์„ ๋•Œ ๊ฐ€๋Šฅ
  • ๊ทธ๋ƒฅ git commit ๋งŒ ํ•  ๊ฒฝ์šฐ ์—”ํ„ฐ ํ›„ ๋‚˜์˜ค๋Š” ์—๋””ํ„ฐ์—์„œ ํ•œ ์ค„ ์ด์ƒ์˜ ์ปค๋ฐ‹ ๋‚ด์šฉ ์ž‘์„ฑ ๊ฐ€๋Šฅ
  • ๊ทธ ์—๋””ํ„ฐ๋Š” ์ž๊ธฐ๊ฐ€ ์›ํ•œ๋Š” ์—๋””ํ„ฐ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
    ex) git config --global core.editor "nano" -> nano ์—๋””ํ„ฐ๋กœ ๋ณ€๊ฒฝ

 

7. ๋ฒ„์ „ ์‚ญ์ œ - git reset

  • git reset --hard [๋ฒ„์ „ ๊ณ ์œ  ๋ฒˆํ˜ธ]
    : ์ž…๋ ฅํ•œ ๋ฒ„์ „์œผ๋กœ ๋ฆฌ์…‹ํ•˜๊ฒ ๋‹ค.
    (--soft ๋“ฑ์œผ๋กœ ๋ฐ”๊พธ๋ฉด ํ˜„์žฌ repository๋ฅผ ์‚ด๋ฆด์ˆ˜์žˆ๋‹ค)
  • **ํ˜‘์—…์„ ํ•  ๋•Œ๋Š” ์ด๋ฏธ ๋‹ค๋ฅธ์‚ฌ๋žŒ๊ณผ ๊ณต์œ ๋œ ๋ฒ„์ „์— ๋Œ€ํ•ด์„œ๋Š” ๋ฆฌ์…‹ํ•˜๋ฉด ์•ˆ๋Œ!
    ๊ณต์œ  ์ „ ๋‹จ๊ณ„ ๋ฒ„์ „๋งŒ ๋ฆฌ์…‹ํ•ด์•ผ ์—‰ํ‚ค์ง€ ์•Š์Œ

8. ๋˜๋Œ๋ฆฌ๊ธฐ - git revert

  • reset๊ณผ ๋‹ค๋ฅด๊ฒŒ ์‚ญ์ œ์™€ ๋ณด์กด์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์žˆ์Œ
  • ์‚ฌ์šฉ : git revert [๋ฒ„์ „ ๊ณ ์œ  ๋ฒˆํ˜ธ]
  • ๋ฒ„์ „ v1 -> v2 -> v3 -> v4 ๊ฐ€ ์žˆ๋Š” ์ƒํ™ฉ์ผ ๋•Œ
    v3์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค๋Š” ๊ฐœ๋… : v4๋ฅผ ๋˜๋Œ๋ ค์„œ v3์„ ๊ฐ„๋‹ค
    ๋•Œ๋ฌธ์— git revert [v4 ๊ณ ์œ ๋ฒˆํ˜ธ]๋ฅผ ํ•ด์•ผํ•จ
  • ์ดํ›„ log๋ฅผ ํ™•์ธํ•˜๋ฉด v4๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์ด์•„๋‹ˆ๋ผ
    revert "v4"๋ผ๋Š” ๋ฒ„์ „์ด ๋‹ค์‹œ ์ƒ๊น€์œผ๋กœ์จ v3์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ
  • ์‰ฝ๊ฒŒ ๋งํ•ด์„œ v3->v4์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ v3์œผ๋กœ ๋Œ์•„๊ฐ
  • ๋”ฐ๋ผ์„œ v1์œผ๋กœ ๋Œ์•„๊ฐ€๊ณ  ์‹ถ๋‹ค๋ฉด,
    revert v4 -> revert v3 -> revert v2์™€ ๊ฐ™์ด
    ์ˆœ์ฐจ์ ์œผ๋กœ revert๋ฅผ ํ•ด์•ผ ์ถฉ๋Œ x 

9. ์ˆ˜์—…์„ ๋งˆ์น˜๋ฉฐ

- diff tool: ๋ฒ„์ „ ๋น„๊ต

- .gitignore: ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ•˜์ง€ ๋ง์•„์•ผํ•  ํŒŒ์ผ ๊ด€๋ฆฌ
->.gitignore๋ผ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด git์ด ๋ฌด์‹œํ•  ์ž„์‹œํŒŒ์ผ์ด๋‚˜ ํŠน์ •ํŒŒ์ผ๋“ค์˜ ์ด๋ฆ„์„ ์ ๋Š”๋‹ค. 

- branch: ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ์—์„œ ๋‹ค์–‘ํ•œ ์ž‘์—… ๊ฐ€๋Šฅ

- tag: tag๋ฅผ ํ†ตํ•ด ๋ฒ„์ „์˜ ๋ณต์žกํ•œ ๊ณ ์œ  ๋ฒˆํ˜ธ๊ฐ€ ์•„๋‹Œ, ์•„์ด๋””๋‚˜ ์ด๋ฆ„์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

- backup: dropbox, google drive, one drive ์—๋ผ๋„ back up์„ ํ•˜์ž

'๐Ÿ” Archive > Git' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[github ์—๋Ÿฌ] error: failed to push some refs to  (1) 2020.03.09