2013-06-06 4 views
2

우리 회사는 여러 사이트의 개발을 관리하기 위해 git flow을 사용하고 있습니다. 이 사이트는 모두 기본 저장소의 분기점입니다. 업스트림 프로젝트의 업데이트로 사이트를 업데이트하기는 쉽습니다. 그러나 사이트의 기능으로 기본 프로젝트를 업데이트하면 두통이 생깁니다.현재 분기에 병합하는 git merge 커밋을 찾는 방법

각 사이트에는 고유 한 저장소가 있고 원본은 원격 프로필입니다.

이러한 사이트가 공유하는 모든 항목은 하나의 디렉토리 아래에 있으며 git 하위 트리를 올바르게 사용할 수는 있지만 현재로서는 그렇지 않습니다.

현재 프로필에서 개발 지점을 체크 아웃하고 로컬 마스터에서 공유 디렉터리를 체크 아웃하고 커밋하고 프로필을 작성/개발합니다. 이 기능은 모든 기능을 하나의 커밋으로 축소합니다.

내가 뭘하고 싶은가요 : 다른 사이트에서 개별 기능을 프로필로 가져 와서 개발하십시오.

문제는 기능이 테스트되고 사이트에 게시되어 업스트림 병합 준비가되면이 시점에서 기능이 이미 마스터에 병합되었습니다.

로컬 사이트의 git 내역에서 이미 병합 된 기능을 찾을 방법을 찾지 못했습니다.

나는 나에게 현재의 지점에 물건 가져 병합 커밋 말할 수있는 스크립트와 함께 올라와있다 : 나는 지역이이 명령을 실행하면 나는 형식을 할 수있는 지점을 개발

git log --decorate --graph --all|grep --before-context=1 --after-context=4 "^|\\\\"|grep ^\*|awk '{for(i=1; i <= NF; i++){if($i ~ /commit/){com = i + 1;print $com}}}' 

을 - 다른 병합에 대한 경로를 지정하고 프로필을보다 세부적으로 업데이트합니다.

아무에게 나에게 더 정확한 방법을 보여줄 수 있습니까? 현재 브랜치에 병합 커밋을 병합 찾을 찾고 있다면

답변

0

당신이 할 수있는

git log --merges 
+0

자식 로그 --merges 기존의 모든 병합 분기에 커밋 표시합니다. 현재 분기에 직접 병합 된 커밋 만보고 싶습니다. 즉, 기능 분기가 병합되어 병합되고 있습니다. – freeduck

+0

@freeduck 전 이해가 안됩니다. 병합 커밋이 현재 분기에 직접 병합되지 않는 것은 무엇입니까? –

+0

누군가가 feature 브랜치에서 작업하고 플랫폼에서 병합 (내 초기 질문 참조) 한 다음 해당 기능을 개발하도록 병합하는 경우 두 병합 커밋이 git log --merges의 출력에 표시됩니다. 필자는 기능 병합에만 관심이 있습니다. – freeduck