Add&Commit

์ž‘์—… ํด๋”์—์„œ git ์ด์šฉํ•˜๊ธฐ

  • ์ƒˆ๋กœ์šด Git ์ €์žฅ์†Œ (repository)๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ Git ์ €์žฅ์†Œ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

    git init

addํ•˜๊ณ  commitํ•ด์„œ ๋ฒ„์ „ ๋งŒ๋“ค๊ธฐ

  • ์ž‘์—… ํด๋”์—์„œ staging area๋กœ ์˜ฎ๊ฒจ์ฃผ๋ฉด์„œ commitํ•  ํŒŒ์ผ๋“ค staging ํ•˜๊ธฐ

    git add ํŒŒ์ผ์ด๋ฆ„
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ staging ํ•˜๊ธฐ

    git add ํŒŒ์ผ์ด๋ฆ„1 ํŒŒ์ผ์ด๋ฆ„2
  • ๋ชจ๋“  ํŒŒ์ผ staging ํ•˜๊ธฐ

    git add .
  • ํ˜„์žฌ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ, staging๋œ ํŒŒ์ผ๋“ค์„ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด ์ž…๋ ฅํ•˜๊ธฐ

    git status
  • staging area์—์„œ ํŒŒ์ผ์„ ์ œ์™ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด ์ž…๋ ฅํ•˜๊ธฐ

    git restore --staged ํŒŒ์ผ์ด๋ฆ„
  • staging area์—์„œ repository๋กœ ์˜ฎ๊ฒจ์ฃผ๊ธฐ

    git commit -m '์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ž‘์„ฑ'
  • commitํ•œ ๊ธฐ๋ก์„ ํ•œ ๋ˆˆ์— ํŒŒ์•…ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด ์ž…๋ ฅํ•˜๊ธฐ

    # ํ…์ŠคํŠธ๋กœ ๋ณด์—ฌ์คŒ
    # ์ž…๋ ฅ ํ›„ Vim ์—๋””ํ„ฐ๊ฐ€ ์ผœ์ง€๋ฉด j, k ํ‚ค๋กœ ์œ„์•„๋ž˜ ์Šคํฌ๋กค ๊ฐ€๋Šฅ, q ํ‚ค๋กœ ์ข…๋ฃŒ ๊ฐ€๋Šฅ
    git log
    # ๊ทธ๋ž˜ํ”„๋กœ ๋ณด์—ฌ์คŒ
    # ์ž…๋ ฅ ํ›„ Vim ์—๋””ํ„ฐ๊ฐ€ ์ผœ์ง€๋ฉด j, k ํ‚ค๋กœ ์œ„์•„๋ž˜ ์Šคํฌ๋กค ๊ฐ€๋Šฅ, q ํ‚ค๋กœ ์ข…๋ฃŒ ๊ฐ€๋Šฅ
    git log --graph
  • commit ์ทจ์†Œํ•˜๊ธฐ

      # [๋ฐฉ๋ฒ• 1] commit์„ ์ทจ์†Œํ•˜๊ณ  ํ•ด๋‹น ํŒŒ์ผ๋“ค์€ staged ์ƒํƒœ๋กœ working directory์— ๋ณด์กด
      git reset --soft HEAD^
    
      # [๋ฐฉ๋ฒ• 2] commit์„ ์ทจ์†Œํ•˜๊ณ  ํ•ด๋‹น ํŒŒ์ผ๋“ค์€ unstaged ์ƒํƒœ๋กœ ์›Œํ‚น ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณด์กด
      # ๊ธฐ๋ณธ ์˜ต์…˜
      git reset --mixed HEAD^
      # ์œ„์™€ ๋™์ผ
      git reset HEAD^
      # ๋งˆ์ง€๋ง‰ 2๊ฐœ์˜ commit์„ ์ทจ์†Œ
      git reset HEAD~2
    
      # [๋ฐฉ๋ฒ• 3] commit์„ ์ทจ์†Œํ•˜๊ณ  ํ•ด๋‹น ํŒŒ์ผ๋“ค์€ unstaged ์ƒํƒœ๋กœ ์›Œํ‚น ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์‚ญ์ œ
      git reset --hard HEAD^
      git-cancel.html

Last updated