유용한 Git 명령어

이재홍 http://www.pyrasis.com 2014.6.29 ~ 2014.7.10

커밋 취소하기

git reset HEAD^


커밋 순서 바꾸기, 합치기.

  • HEAD 부터 아래 5개의 목록이 보여지는데, 각 커밋의 순서를 편집하고 저장하면 순서가 변경된다.
  • 커밋을 합칠 때에는 맨 마지막 커밋의 pick을 squash로 수정한다. 이렇게 하면 바로 전 커밋과 합쳐진다.
  • 중간에 있는 커밋을 합치고 싶을 때에는 커밋 순서를 바꿔서 합치고 싶은 커밋들이 맨 마지막이 되도록 만든다.
git rebase -i HEAD~5


커밋 로그 수정하기

git commit --amend


커밋의 이메일 수정하기

git commit --amend --author "Lee, Jae-Hong <email@address.com>"


origin에 강제 push. 로컬에서 commit amend, rebase, reset 한 것을 강제로 origin에 push

git push -f origin HEAD^:master
또는
git push -f


최초 커밋(root commit) 수정하기

git checkout 최초 커밋의 hash값
git commit --amend --author "Lee, Jae-Hong <email@address.com>"
git rebase --onto HEAD HEAD master


원본 저장소의 최신 내용을 fork한 저장소에 push 하기

git clone git@github.com:cocos2d/cocos2d-x.git cocos2d-x
cd cocos2d-x
git remote add upstream git@github.com:pyrasis/cocos2d-x.git
git fetch upstream
git pull origin master
git push upstream master


머지 커밋 삭제하기

  • HEAD 부터 아래 5개의 목록이 보여지는데 머지 커밋 줄을 삭제하고 저장한다.
  • 현재 브랜치와 연결고리가 삭제되기 때문에 머지를 취소한 효과가 난다. 머지한 뒤 브랜치를 삭제했을 때 이 방법을 사용하면 데이터가 날아가므로 주의해야 함.
git git rebase -i --preserve-merges HEAD~5


SSH Permission denied (publickey).에러가 발생할 때(리눅스 터미널과 윈도우의 Git Bash에서 아래 명령을 실행)

$ eval $(ssh-agent)
$ ssh-add ~/.ssh/id_rsa

저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

29 June 2014

Tags