저자의 모든 지점에서 한 번에 로그를 기록하는 방법은 무엇입니까?


213

저자가 한 모든 커밋에 대한 보고서를 받아야합니다. 지금까지 다음 명령을 래핑하는 스크립트가 있습니다.

git log --pretty=format:"%ad:%an:%d:%B" --date=short --reverse --all --since=2.months.ago --author=Petr

잘 작동합니다. 그러나 현재 분기에 대한 작업 만보고합니다. 현재 브랜치 뿐만 아니라 모든 브랜치 에서 작성자의 커밋 메시지를 기록하는 옵션이 있습니까?

즉, git은 저장소의 모든 커밋을 역순으로 정렬하여 (날짜 시간별로) 시퀀스를 만들고 해당 시퀀스에서 로그 정보를 추출 할 수 있습니까?

해결 : (아래 주석에서 복사했지만 그렇지 않으면 숨겨 짐)

문제는 두 개의 브랜치에서 동시에 작동하기 위해 하나의 저장소와 두 개의 복제본이 있다는 것입니다. 원본 리포지토리에 변경 내용을 푸시했지만 복제 된 리포지토리에 변경 내용을 가져 오는 것을 잊었습니다. 이렇게 --all하면 복제 된 저장소에 사용할 때 작동하지 않는 것 같습니다 .


쉘 스크립트를 작성할 수 있다고 생각하십시오 : 첫 번째 인수로 git log수락합니다 (및 분기로 모두 나열 ). committishgit log mybranchgit branch
Alexander Pavlov

@ AlexanderPavlov : 아마 이해하지 못할 것입니다. 무엇입니까 committish? 하나의 git 명령을 통해 정보를 얻을 수 있습니까?
pepr

1
현재 지점뿐만 아니라 모든 지점에서 커밋을 받고 있습니까? 당신이 제공 한 이후 예상 --all됩니다. 귀하의 명령이 맞습니다
CharlesB

1
@AlexanderPavlov : git rev-list파싱에 신경 쓰지 말고 git log --all괜찮습니다.
CharlesB

1
@CharlesB : 그것은 내가 생각한 --all것이었지만 분명히 나에게 이런 식으로 작동하지는 않습니다. 도움말 설명을 이해하지 못합니다. 모든 참조 refs/가 명령 행에로 표시되는 것처럼 가장하십시오 <commit>.
pepr

답변:


186

--all모든 브랜치에서 모든 커밋을 제공 하는 스위치를 사용하기 때문에 명령이 옳습니다 . 귀하의 의견에 대한 질문에 답하기 위해 베어 리포지토리에서도 작동합니다.


64

대신 --all당신이 사용할 수 --branches있기 때문에, --all또한 포함 refs/tags하고 refs/remotes.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.