Sunday, August 18, 2019

git : commit 나누기


$ git checkout -b dev
~~ 작업 ~~
$ git commit -m "어떤 많은 분량의 작업"
>> SHA-1 84f5148

PR을 받기에 너무 길다는 가정하에 다음과 같이 commit 을 나눈다.

$ git checkout master
$ git checkout -b pr1
$ git cherry-pick 84f5148
너무 많은 변화가 있으니, 이전 commit으로 돌아간다.

$ git reset HEAD~1
~~ 변화의 일부만 남기는 작업~~
branch pr1 을 PR하는동안 다음 branch 를 더 준비한다.

------
$ git checkout -b PR2
$ git cherry-pick 84f5148
$ git mergetool
------
* mergetool에서 적당히 잘 작업했으면 git reset 명령은 필요 없다.
* 위 작업(branch 생성,  cherry-pick, merge resolve)을 반복하면 하나의 commit을 여러개의 branch의 commit으로 잘게 나눌 수 있다.