Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
$ git log --branches --graph --decorate --oneline

Git Add 를 취소하고 싶어요.

Info
iconfalse
  • git restore --staged (filename)

Git Commit을 취소하고 싶어요.

Info
iconfalse
Info

reset 옵션
–soft : index 보존(add한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존.
–mixed : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션)
–hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소.

  • commit은 취소하고 파일은 stage상태로
    • git reset --soft HEAD^
  • commit은 취소하고 파일은 unstage상태로 (default)
    • git reset --mixed HEAD^
    • git reset HEAD^
  • 마지막2개 commit취소
    • git reset HEAD~2
  • commit은 취소하고  해당파일을 unstage상태로 워킹디렉터리에서 삭제
    • git reset --hard HEAD^

Git Push를 취소하고 싶어요. 

Info
iconfalse
Info

reset 옵션
–soft : index 보존(add한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존.
–mixed : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션)
–hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소.

  1. 워킹 디렉토리의 commit을 되돌린다.
    1. git reset HEAD^ #최근의 커밋을 취소함
    2. git reset [commit id] #원하는 시점으로 워킹디렉토리를 되돌린다.
  2. 돌려진 상태에서 다시  commit한다.
    1. git commit -m "commit message"
  3. 원격저장소에 강제로 push 한다.
    1. git push origin branchname -f
    2. git push origin branchname --force
    3. git push origin +branchname

...

Info
iconfalse

$ git rebase -i HEAD~2

pick 004644d first commit

pick ae53bdf second commit --> squesh ae53bdf second commit


:wq

Patch 파일을 만들고 싶어요.

Info
iconfalse
  • commit-id에서부터 현재까지의 commit을 각patch파일로 생성 (commit 마다 patch파일 생성)
    • git format-patch [commit-id]
    • git format-patch -2

전달받은 Patch파일을 commit하고 싶어요.

Info
iconfalse
  • git am [patch-filename]

Commit하기전 파일을 비교해서(diff) Patch 파일을 만들고 싶어요.

Info
iconfalse
  • git diff > patch-filename

두 Branch를 합치고 싶어요.

Info
iconfalse
  • issue1 브렌치를 master 브랜치로 병합
    • git checkout master
    • git merge issue1
  • merge 확인
    • git log --branches --graph --decorate --oneline

개발을 하고 있었는데, 앗 새로운 Branch에서 작업 하고 싶어요.

Info
iconfalse
  • Commit하기전 개발하고 있던 파일들이 새로운 브랜치로 옮겨 집니다.
    • git checkout -b new-branch

개발을 하고 commit을 했는데, 새로운 branch로 작업내용을 옮기고 싶어요.

Info
iconfalse
  • 새로운 Branch를 만들고, 이전 branch의 작업내용을 reset합니다.
    • git checkout -b new-branch
    • git checkout develop
    • git reset --hard HEAD~1

...