2014-10-31 2 views
1

Github 또는 Stash에서 끌어 오기 요청을 수행하면 현재 분기에서 커밋 목록을 가져옵니다.Git 현재 분기 커밋 목록

시작한 분기의 이름을 지정하지 않고 현재 분기를 구성하는 커밋 목록을 가져 오는 git 명령은 무엇이겠습니까? 나는에 설명 된대로

답변

0

당신은 일반적으로 "Git log to get commits only for a specific branch는"

그렇지 않으면, 당신이하지 않은 커밋을 제외해야, 당신은 현재 브랜치에 특정 커밋 목록을하기 위해 오는되는 지점에서 알 필요가 (dimirc에 의해 suggested 등) 만 가지의 부분 : 사용

git log mybranch --not $(git for-each-ref --format='%(refname)' refs/heads/ | grep -v "refs/heads/mybranch") 

또는 간단 git merge-base (HEAD는 브랜치 as in this question하지 경우) :

git log $(git merge-base HEAD branch)..branch 
0

git에서는 제외하고자하는 참조를 지정하지 않고 특정 분기에 대한 커밋 만 표시 할 수 없습니다.

그러나 당신이 참조를 결정할 수 프로그래밍 방식으로, 이러한 명령은 다음과 같이 볼 수 있었다 : 당신이 별명 정의 할 수 있습니다 쉽게 사용에 대한

git log HEAD $(git branch -a | grep -v "^*" | grep -v "\->" | sed "s/^ /--not /") 

: 다음

git config --global alias.branchlog '!git log HEAD $(git branch -a | grep -v "^*" | grep -v "\->" | sed "s/^ /--not /")' 

을 그리고 그냥 사용 git branchlog을 입력하십시오.

참고 : remote 가지를 무시하려면 git branch -a 전화에서 -a 옵션을 제거해야합니다.


이 명령은 현재 HEAD 만 도달 할 수있는 모든 커밋을 기록합니다. 모든 브랜치 (git branch -a)를 나열하고 결과에서 현재 브랜치를 제거하고 HEAD (및 grep -v "\->")을 나열하여이를 수행합니다. 마지막 단계에서 각 분기에 --not을 붙이면 git log참조을 제외하도록 지시합니다.

참고 : 원격 HEAD git logremote/origin/HEAD -> remote/origin/master 및 엉망처럼 보인다.당신이 손으로 명령을 입력하면

는 다음과 같이 수 :

git log HEAD --not master --not origin/master 
+0

지점에서 당신에게 커밋을 보여줍니다 Windows git bash 및 "치명적인 : 인식 할 수없는 인수 :" "어떤 생각? –

+0

'git branch -a'의 출력을 제공하십시오. –

+0

그리고 사용하는 자식 버전을 알려주십시오 ('git --version'). –

0

변화가 현재의 자식 지점

자식 지점 ->을에 지점을 나열하려면 repos (*은 해당 지점에 있음을 나타내며 커밋은이 지점에 포함됩니다) 분기의 커밋을보고 싶다면

자식 체크 아웃 BRANCHNAME -> 당신이 커밋을보고 싶은 지점을 변경 한 후

자식 로그 -> 난에 명령을 시도

관련 문제