#title Git & Tip [[TableOfContents]] == 일반 == ==== 알아두면 좋은 기능 ==== ===== stashing ===== 현재 브랜치에서 작업중인 내용을 임시로 저장하고 다른 브랜치로 이동할 때 사용한다. ==== 작업의 취소 ==== http://www.evernote.com/l/AMKuBFPL-uZItrAAGvEbqooTf52dvpkR1rQ/ ==== push의 취소 ==== http://whiteship.me/?p=13516 ==== commit 메시지 수정 ==== ===== 마지막 커밋을 수정하기 ===== [[Code($ git commit --amend)]] 마지막 커밋을 수정하는 방법은 매우 간단하다. 이 명령으로 텍스트 편집기가 열리고 메시지를 수정하면 된다. ===== 커밋 메시지를 여러 개 수정하기 ===== 예를 들어 마지막 3번째에 있는 커밋 로그를 수정하고 싶다면 rebase -i를 사용해서 수정해야 한다. 만약 rebase에 익숙하지 않다면 다음을 주의 깊게 봐야 한다. https://git-scm.com/book/ko/v1/Git-%EB%8F%84%EA%B5%AC-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC-%EB%8B%A8%EC%9E%A5%ED%95%98%EA%B8%B0 [[Code($ git rebase -i HEAD~3)]] 텍스트 편집기가 열리면 다음 같은 커밋 목록이 첨부되어 있다. {{{ pick ... pick ... pick ... }}} 여기서 커밋 목록 순서는 위쪽이 오래된 것이다. 마지막 3번째 커밋 메시지를 수정하려면 pick을 edit로 변경하고 저장 및 종료한다. {{{ edit ... pick ... pick ... }}} 저장하고 편집기를 종료하면 Git은 목록에 있는 커밋 중에서 가장 오래된 커밋으로 이동하고, 아래와 같이 다음은 어떻게 해야하는지 메시지를 보여준다. {{{ $ git rebase -i HEAD~3 Stopped at 7482e0d... updated the gemspec to hopefully work better You can amend the commit now, with git commit --amend Once you’re satisfied with your changes, run git rebase --continue }}} 마지막 커밋 메시지를 변경했을 때와 같이 [[code(git commit --amend)]] 으로 메시지를 변경하고 [[code(git rebase --continue)]]로 rebase를 계속한다. 이것을 반복하면 어느 위치의 커밋 메시지도 수정할 수 있다. 주의할 점은 이미 push된 커밋은 SHA-1 값이 바뀌기 때문에 가능하면 수정하지 말아야 한다. === diff 패치 생성 및 적용 === {{{ git diff --no-prefix > patchfile # 패치 생성 cd path/to/top/ # 이동 patch -p0 < patchfile # 적용 }}} --no-prefix 옵션 없이 생성된 patch 파일이 있다면, {{{ patch -p1 < patchfile }}} == 기타 == === gitignore === ==== Visual Studio ==== https://github.com/github/gitignore/blob/master/VisualStudio.gitignore ---- CategoryDev