2012-03-09 3 views
9

코드가 Github에 있으며 우리는 코드를 검토하기 위해 Pull Requests를 사용합니다. 검토 결과 커밋이 되돌려 지거나 변경 될 수 있습니다. 이것은 커밋 히스토리를 혼란스럽게 할 수 있습니다. rebase 명령은 커밋이 이미 "공개적으로 사용 가능"이므로 권장하지 않습니다.GitHub Pull 요청 코드 검토 후 정리 기록을 유지하는 방법?

비슷한 방식으로 코드 검토를 수행하는 경우 어떻게 처리합니까? 역사를 어떻게 깨끗하게 유지합니까?

답변

6

마스터가 아닌 마스터 (maint *, next) 브랜치는 게시해도 괜찮습니다. 주제 분기를 사용하여 검토 할 새로운 내용을 게시하십시오. 그런 다음 마스터에 병합되었거나 끌어 오기 요청이 거부 된 후에도 언제든지 삭제하십시오. man gitworkflows

+0

나는 두 접근법 모두 시도하고 이것은 나를 위해 큰 작품. 감사! –

1

나는 단순히 커밋 히스토리를 어지럽히는 것이 좋습니다.

역사를 보면, 보통 현재 커밋의 조상을보고 있음을 명심하십시오. 코드 검토 프로세스에서 거부되었거나 다른 커밋으로 다시 제출 된 코드에 대한 막 다른 분기를 만드는 경우 이러한 조상에 포함되지 않으며 일반적으로 표시되지 않습니다.

$ git init example 
Initialized empty Git repository in /private/tmp/example/.git/ 
$ cd example/ 
$ date >date 
$ git add date 
$ git commit -am base 
[master (root-commit) 5108762] base 
1 files changed, 1 insertions(+), 0 deletions(-) 
create mode 100644 date 
$ date >date 
$ git commit -am bad 
[master 440c3b6] bad 
1 files changed, 1 insertions(+), 1 deletions(-) 
$ git log 
commit 440c3b61b279e8b7cd5f5f656984b63ba18e518b 
Author: Tom Anderson <[email protected]> 
Date: Sat Mar 10 09:15:48 2012 +0000 

    bad 

commit 5108762ba7011464fe3c57cf762d0d18f337f68c 
Author: Tom Anderson <[email protected]> 
Date: Sat Mar 10 09:15:28 2012 +0000 

    base 
$ git branch postreview 5108762ba7011464fe3c57cf762d0d18f337f68c 
$ git checkout postreview 
Switched to branch 'postreview' 
$ date >date 
$ git commit -am good 
[postreview 42e5257] good 
1 files changed, 1 insertions(+), 1 deletions(-) 
$ git log 
commit 42e5257addf73b516676d24e7092b0e4768d3564 
Author: Tom Anderson <[email protected]> 
Date: Sat Mar 10 09:17:30 2012 +0000 

    good 

commit 5108762ba7011464fe3c57cf762d0d18f337f68c 
Author: Tom Anderson <[email protected]> 
Date: Sat Mar 10 09:15:28 2012 +0000 

    base 

나쁜 저장소에 커밋하더라도, 그것은 자식 로그 출력에 표시되지 않습니다 여기

는 역사 뷰어로 git log를 사용하여, 이것의 길이 역풍하지만 완전한 예제 . 이 경우 포스트 검토 작업을 수행 할 새 분기를 만들었지 만 실제로는 새 작업을 위해 마스터를 이동하여 오래된 작업을 죽은 분기에 남겨두기를 원할 것입니다.

+0

본인의 모범을 보게되면, 마지막 커밋에만 적용됩니다. 또는? 그렇지 않으면 아마도 체리를'postreview'에 골라야할까요? –

+0

리뷰를 작성하기 전에 새로운 브랜치를 시작할 것이라고 생각 했었습니다. 잠재적으로 여러 커밋이 되돌아 왔을 수도 있습니다. 그렇기 때문에 새로운 브랜치를 계속 유지하려고했습니다. 그것은 기본적으로 rebase와 동일하지만, 길을 따라 커밋을 편집하고 오래된 커밋을 삭제하지 않습니다. 사실, 당신은 리베이스로 이것을 할 수있을 것입니다. –