레이블이 rebase인 게시물을 표시합니다. 모든 게시물 표시
레이블이 rebase인 게시물을 표시합니다. 모든 게시물 표시

2015년 5월 31일 일요일

git commit 합치기

pull request시에 하나의 commit message를 전달하기 위한 목적으로 여러 번 commit한 것을 합쳐서 하나의 commit를 만들려면 rebase를 사용하면 된다.

아래 3개의 commit을 하나로 묶어서 push할 예정이다.

스크린샷 2015-05-31 16.03.46

rebase -i 옵션을 사용하여 아래와 같이 주면 HEAD부터 3개의 commit를 합친다.

$ git rebase -i HEAD~3

명령을 주면 편집창에서 수정할 수 있게 되는데, 아래와 같이 log가 나오는 순서의 반대인 커밋한 순서대로 나온다. 여기서 2,3번을 pick에서 squash로 변경하면 합치겠다는 의미이다.(그냥 편집창이므로, pick을 지우고, squash로 다시 써주면 된다.

squash로 변경한 후에 저장하고 나오게 되면, commit message를 수정할 수 있는 창이 나온다.

주석으로 되어 있는 부분을 제외하고 합쳐진다고 보면 된다. 적절히 메세지를 수정하고 저장하고 나오면, 아래와 같이 성공메세지가 나온다.

다시 push를 해보면 commit이 하나만 나와 있고, commit message도 합쳐진 것을 확인할 수 있다.

스크린샷 2015-05-31 16.34.12

주의 : 이미 upstream에 올라간 것을 묶으면 난리(?)난다. rebase는 무조건 local(작업하고 있는 저장소)에 대한  commit에 한해서만 사용해야 한다.

참고
http://ift.tt/1DyxAAS
http://ift.tt/1GlF8tu




from WordPress http://ift.tt/1FmeBIl

2015년 5월 24일 일요일

github pull request 취소하고 수정하여 다시 pull request하기.

pull request 보낸 code가 기각되어 수정하여 다시 pull reqest하고자 한다.

스크린샷 2015-05-24 12.05.56

위와 같이 automatically merge가 안되므로 close하고 다시 수정하고 pull request합니다.

스크린샷 2015-05-24 12.05.25

close하면 branch를 지울 것인가 물어봅니다.

스크린샷 2015-05-24 12.05.41

위에서 지우게 되면 local에서 214_category_tag_sync에서 rebase해서 적용하면 됩니다.

우선 충돌한 pull request의 branch를 불러 온다.

rebase를 하면 아래와 같이 conflict가 발생하고, 수정한 이후에는 ‘git rebase –continue’ 하라고 되어 있다.

git status를 보면 두개의 파일이 conflicting(Unmerged paths) 인 것을 확인할 수 있다.

참고
http://ift.tt/1RdHZIe




from WordPress http://ift.tt/1LrP04a