글쓰기 메뉴

깃(깃허브) 브랜치 작업 커맨드 히스토리

이번팀은 자기 계정으로 포크안하고 origin 클론 받아서 브랜치만 쪼개서 작업하던데 난 포크시켜서 하는게 마음이 편해.

문제는 할때마다 까먹는다는거 ㅋㅋ


깃보다 서브버전을 오래, 자주 써서 그런것도 있고 서브버전은 체크아웃, 브랜치, 머지, 커밋 이렇게 비교적 직선에 가까운 작업 형태인데 깃은 확실히 시각화 될 수 있는 수준의 단계에 대한 이해가  필요한 것 같음.


암튼.. 깃허브를 쓴다고 가정하고 내 방식을, 내 기억을 위해 기록.


1. 원본 리모트 레파지토리 내 계정으로 fork


2. 클론

$ git clone https://github.com/thh/awesome-service.git


3. 리모트 네임 변경

$ git remote rename origin thh


4. 원본 리모트 레파지토리 추가

$ git remote add --track master upstream https://github.com/macompany/awesome-service.git


5. 최신 소스 동기화

$ git checkout master
$ git pull upstream


6. 작업 브랜치

$ git checkout -b hotfix-27 upstream/master


7. 작업 작업 작업


8. rebase - 마스터 헤드 이동 (브랜치 작업 시작 후 upstream master 의 커밋이 있는 경우)

$ git checkout master
$ git pull upstream master
$ git checkout hotfix-27
$ git rebase master


9. rebase - 커밋 합치기

$ git log
$ git rebase -i HEAD~2
=== 편집기에서 pick 과 squash 선택 > 저장 후 종료
=== 편집기에서 커밋 로그 정리 > 저장 후 종료


10. rebase - upstream 최신 HEAD 로 이동

$ git stash
$ git checkout master
$ git pull upstream master
$ git checkout hotfix-27
$ git rebase master
$ git stash pop


12. Delete branch (local & remote)

$ git branch -d hotfix-27
$ git push thh :hotfix-27


13. Push

$ git push thh hotfix-27:hotfix-27


14. github 에서 풀리퀘스트 작성 및 전송


<링크>

http://www.popit.kr/오픈소스-git-프로젝트-pull-request-보내기/

http://dogfeet.github.io/articles/2012/git-merge-rebase.html





 

어디서 왔지?
[["synd.kr", 22], ["unknown", 115], ["www.google.co.kr", 1]]
다른 글들