[Git] ๊ธฐ์ดˆ

hosik kimยท2021๋…„ 9์›” 13์ผ
0

With CodeStates

๋ชฉ๋ก ๋ณด๊ธฐ
31/45
post-thumbnail

๐Ÿ’ก ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์˜ ํ•„์š”์„ฑ


  • ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๊ฐ™์€ ํŒŒ์ผ๋กœ ๋™์‹œ์— ์ž‘์—…ํ•˜๊ฑฐ๋‚˜, ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ ค์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ์„๋•Œ ์†์‰ฝ๊ฒŒ ์ด์ „ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โ” ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 


  1. ๋ฒ„์ „ ๊ด€๋ฆฌ๋ž€ ๊ฐ ๋ฒ„์ „๋ณ„๋กœ ๋ณ€๊ฒฝ๋œ ์ด๋ ฅ๋“ค์„ ์ €์žฅํ•˜๋Š” ์ž‘์—…์„ ๋งํ•˜๋ฉฐ, ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋ณ€๊ฒฝ ์ด๋ ฅ ์ €์žฅ ๊ฐ€๋Šฅํ•˜๋‹ค
  2. ์ด์ „ ๋ณ€๊ฒฝ ์ด๋ ฅ๋“ค์ด ๊ธฐ๋ก๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ์•„๊ฐ€์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด ์†์‰ฝ๊ฒŒ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
  3. ๋ˆ„๊ฐ€ ์–ด๋–ค ํŒŒ์ผ์„ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œํ–ˆ๋Š”์ง€ ํ™•์ผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์–ด๋–ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฝ๋‹ค.
  4. ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๋Š” ํŒŒ์ผ์€ ๋‹ค์–‘ํ•œ ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ˜‘์—…ํ•˜๊ธฐ์— ์ข‹๋‹ค.
  5. ๋ฐฑ์—…์šฉ ๋ชฉ์ ์œผ๋กœ๋„ ํ™œ์šฉํ•˜๊ธฐ ์ข‹๋‹ค.

๐Ÿ’ก Git


: ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•˜๊ณ  ๋Œ€์ค‘์ ์ธ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

  • Git์€ ๊ฐœ๋ฐœ์ž์˜ ์†Œ์Šค ์ฝ”๋“œ ๊ธฐ๋ก์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐœ๋ฐœ๋œ '๋ถ„์‚ฐํ˜• ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ'์ด๋‹ค.
  • commit ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์Šค๋ƒ…์ƒท(commitํ•œ ์‹œ์ ์— ์ƒ์„ฑ๋œ ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ)์ด ๋งŒ๋“ค์–ด์ง€๊ณ ,
    ๋‚ ์งœ๋ณ„๋กœ ์–ด๋–ค ํŒŒ์ผ์ด ์–ด๋–ป๊ฒŒ ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ•˜์ด๋ผ์ดํŠธ๋กœ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ’ก Github


  • Git Repository๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค
  • Git์œผ๋กœ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”์— ๋Œ€ํ•ด์„œ Github๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์ด ๊ณต์œ ํ•˜๊ณ  ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • Github์—์„œ Code Review๋“ฑ์„ ํ†ตํ•ด ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•˜๊ณ , ์ˆ˜๋งŽ์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ’ก Git Repository


: ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ ์ €์žฅํ•ด๋‘๋Š” ์ €์žฅ์†Œ

  • Git์œผ๋กœ ๊ด€๋ฆฌ๋˜๋Š” ํด๋”๋ฅผ Git repository๋ผ๊ณ  ํ•œ๋‹ค.
  • Remote Repository์™€ Local Repository ๋‘ ์ข…๋ฅ˜์˜ ์ €์žฅ์†Œ๊ฐ€ ์žˆ๋‹ค.

Remote Repository

: ์›๊ฒฉ ์˜จ๋ผ์ธ ์„œ๋ฒ„์ƒ์˜ ์ €์žฅ์†Œ, ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ•จ๊ป˜ ๊ณต์œ  ๊ฐ€๋Šฅํ•˜๋‹ค.

Local Repository

: ๋‚ด ์ปดํ“จํ„ฐ์˜ ์ €์žฅ์†Œ, ๋‚ด ๊ฐœ์ธ ์ „์šฉ ์ €์žฅ์†Œ

  • ์ž‘์—…์€ Local Repository์—์„œ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜๋ ค๋ฉด Remote Repository์— ์—…๋กœ๋“œํ•ด์•ผํ•œ๋‹ค.
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด Remote Repository์— ์˜ฌ๋ ค ๋†“์€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‚ด Local Repository๋กœ ๊ฐ€์ง€๊ณ  ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • Working directory, Staging area(Index), HEAD๋กœ ๊ตฌ์„ฑ

๐Ÿ’ก Git ์šฉ์–ด ๋ฐ ๋ช…๋ น์–ด


Work space

  • ํ˜„์žฌ ์ž‘์—…์ค‘์ธ Git ํ”„๋กœ์ ํŠธ ํŒŒ์ผ๋“ค์ด ์žˆ๋Š” ๋‚ด ์ปดํ“จํ„ฐ ์ž‘์—… ๊ณต๊ฐ„

Staging Area(Index)

  • Work Space์—์„œ ์ž‘์—…์— ๋“ค์–ด๊ฐ„ ํŒŒ์ผ๋“ค์„ Git ๊ด€๋ฆฌ ํ•˜์— ์žˆ๋Š” ์ƒํƒœ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์˜์—ญ
  • Commit ์˜ˆ์ •์ธ ๋ณ€๊ฒฝ ๋‚ด์—ญ๋“ค์˜ ๋Œ€๊ธฐ ์žฅ์†Œ
  • 'git add' ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Work Space์—์„œ์˜ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ Staging Area์— ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ช…๋ น์–ด ์˜ต์…˜์„ ํ†ตํ•ด ์ด ๋‹จ๊ณ„๋ฅผ ์ƒ๋žตํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ
  • ์ตœ์ข…ํ™•์ •๋ณธ(Commit)์„ ์ €์žฅ

Fork

  • Github์—์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ Remote Repository๋ฅผ ์ž์‹ ์˜ ๊ณ„์ •์˜ Remote Repository๋กœ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ

Clone

  • Github๋‚ด์— ์žˆ๋Š” ์ž์‹ ์˜ ๊ณ„์ •์˜ Remote Repository๋ฅผ ์ž์‹ ์˜ PC(Local Repository)๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ

Status

  • Commit ํ•˜๊ธฐ ์ „์— ๋จผ์ € ์ž์‹ ์˜ Local Repository์— ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋“ค์ด ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ
  • 'git restore'๋ช…๋ น์–ด ๋’ค์— ํŒŒ์ผ๋ช… ์ž…๋ ฅ

Add

  • Untracked ๋œ ํŒŒ์ผ๋“ค์„ Staging Area์— ์ถ”๊ฐ€ํ•˜์—ฌ Git ๊ด€๋ฆฌ ํ•˜์— ๋‘ ์œผ๋กœ์จ, Commit ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋กœ ๋งŒ๋“ค์–ด ์ค€๋‹ค.
  • 'git add' ๋ช…๋ น์–ด ๋’ค์— ํŒŒ์ผ๋ช… ์ž…๋ ฅ
  • 'git add.' ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Staging Area ์— unstaged ์ƒํƒœ์ธ ๋ชจ๋“  ํŒŒ์ผ์„ ํ•œ ๋ฒˆ์— ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

Commit

  • ์ˆ˜์ • ์ž‘์—…์ด ๋๋‚ฌ์„ ๋•Œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ €์žฅ
  • '-m' ์˜ต์…˜์„ ํ†ตํ•ด ์ฝ”๋ฉ˜ํŠธ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๋ฉฐ, 'git commit -m' ๋ช…๋ น์–ด ๋’ค์— ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ๋”ฐ์˜ดํ‘œ์•ˆ์— ๋„ฃ์–ด ์ž‘์„ฑ
  • Commit ๊ธฐ๋ก์€ ๋‚ ์งœ, Commit ํ•œ ์‚ฌ๋žŒ, Commit ๋ฉ”์„ธ์ง€๊ฐ€ ๋ชจ๋‘ ๊ธฐ๋ก๋œ๋‹ค.
  • 'git commit' ๋ช…๋ น์–ด ์‚ฌ์šฉ

Reset

  • Remote Repository ์—๋Š” ์•„์ง ์—…๋กœ๋“œ์ „์ด๊ณ , Local Reapository ์—๋งŒ Commit ํ•œ ๋‚ด์šฉ์„ ์ทจ์†Œํ•  ๋•Œ ์‚ฌ์šฉ
  • 'git reset HEAD^' ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์žฅ ์ตœ์‹ ์˜ Commit ์„ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค.

Log

  • ํ˜„์žฌ๊นŒ์ง€ Commit ๋œ ๋‚ด์—ญ๋“ค์„ ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ
  • 'git log' ๋ช…๋ น์–ด ์ž…๋ ฅ
  • ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 'q' ์ž…๋ ฅ

Push

  • Local Repository ์—์„œ ๋ณ€๊ฒฝ ๋ฐ ๊ธฐ๋กํ•ด๋†“์€ Commit ๋œ ์‚ฌํ•ญ์„ Remote Repository ๋กœ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ
  • 'git push' ๋ช…๋ น์–ด ๋’ค์— ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋ฅผ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ž…๋ ฅํ•˜์—ฌ ์‚ฌ์šฉ

Pull Request

  • ๋‚ด๊ฐ€ ์ œ์•ˆํ•œ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์•Œ๋ฆฌ๊ณ  ๋ฐ˜์˜ ์—ฌ๋ถ€๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒƒ

Init

  • ๊ธฐ์กด์— Work Space ์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Git Repository ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉ
  • ์ƒˆ๋กœ์šด Repository ๋ฅผ ์ดˆ๊ธฐํ™”
  • 'git init' ๋ช…๋ น์–ด ์ž…๋ ฅ

Remote Add Origin

  • ๋ณ€ํ™˜ํ•œ Local Repository ๋ฅผ Github ์—์„œ ์›๊ฒฉ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜ Remote Repository ์— ์—ฐ๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉ
  • 'git remote add pair' ๋ช…๋ น์–ด ๋’ค์— Repository ์ฃผ์†Œ ์ž…๋ ฅ

Remote Add Pair

  • pair ์˜ Remote Repository ์— ์—ฐ๊ฒฐ
  • 'git remote add pair' ๋ช…๋ น์–ด ๋’ค์— Pair ์˜ Repository ์ฃผ์†Œ ์ž…๋ ฅ

Remote -v

  • ํ˜„์žฌ์˜ Local Repository ์™€ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  Remote repository ๋ชฉ๋ก ํ™•์ธ
  • 'git remote -v' ๋ช…๋ น์–ด ์ž…๋ ฅ
profile
์•ˆ๋˜๋ฉด ๋  ๋•Œ๊นŒ์ง€๐Ÿ‘Œ

0๊ฐœ์˜ ๋Œ“๊ธ€