어떻게 하면 한 사용자의 커밋만 git 로그를 볼 수 있나요?
사용시git log
사용자별로 필터링하여 해당 사용자의 커밋만 표시되도록 하려면 어떻게 해야 합니까?
이것은 양쪽 모두에 유효합니다.git log
및 gitk - 가장 일반적인 두 가지 이력 보기 방법.
이름 전체를 사용할 필요는 없습니다.
git log --author="Jon"
'조나단 스미스'의 약속과 일치할 것이다.
git log --author=Jon
그리고.
git log --author=Smith
효과도 있습니다.공백이 필요 없는 경우 따옴표는 옵션입니다.
더하다--all
현재 커밋의 조상뿐만 아니라 모든 브랜치를 검색하려는 경우.
regex가 이 필터의 기본 메커니즘이기 때문에 여러 작성자와 쉽게 일치시킬 수도 있습니다.Jonathan 또는 Adam의 커밋을 나열하려면 다음을 수행합니다.
git log --author="\(Adam\)\|\(Jon\)"
이 질문에 기재된 정규 표현을 사용하여 특정 작성자 또는 작성자 세트에 의한 커밋을 제외하려면 , 네거티브 룩어헤드(negative lookahead)와 조합해 사용할 수 있습니다.--perl-regexp
스위치:
git log --author='^(?!Adam|Jon).*$' --perl-regexp
또는 Adam이 작성한 커밋을 제외할 수 있습니다.bash
및 배관:
git log --format='%H %an' |
grep -v Adam |
cut -d ' ' -f1 |
xargs -n1 git log -1
Adam에 의해 커밋된(필수는 아니지만) 커밋을 제외하려면 를 바꿉니다.%an
와 함께%cn
상세한 것에 대하여는, 이쪽의 블로그 투고를 참조해 주세요.http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/
git log --author="that user"
기투브에는 비밀스런 방법도 있어...
param을 추가하여 커밋 뷰에서 작성자별로 커밋을 필터링할 수 있습니다.?author=github_handle
예를 들어 링크 https://github.com/dynjs/dynjs/commits/master?author=jingweno은 Dynjs 프로젝트에 대한 커밋 목록을 보여줍니다.
자세한 내용은 이쪽%an
작성자 참조)
사용방법 :-
git log --author="username" --pretty=format:"%h - %an, %ar : %s"
git help log
git 로그의 manpage를 제공합니다./ 키를 누른 다음 "author"를 입력한 다음 Enter 키를 눌러 "author"를 검색합니다."n"을 여러 번 입력하여 관련 섹션으로 이동합니다.이 섹션은 다음과 같습니다.
git log --author="username"
이미 제안했듯이
이것은 커밋의 작성자를 제공하지만 Git에서는 작성자가 커밋자와 다른 사람이 될 수 있습니다(예를 들어 Linux 커널에서는 패치를 일반 사용자로 제출하면 다른 관리 사용자에 의해 커밋될 수 있습니다).자세한 내용은 Git의 작성자와 커밋터의 차이 참조)
그러나 대부분의 경우 사용자가 말하는 것은 커밋과 작성자 모두입니다.
자신의 커밋을 필터링 하는 경우:
git log --author="<$(git config user.email)>"
다른 질문도 있었으니까(잘못된 질문일 가능성이 있습니다)잠긴 채로 두겠습니다.
작성자의 커밋 수를 표시합니다.
git shortlog -nse
특정 사용자 이름에 대한 모든 커밋 검색:
git log --author=USERNAME --oneline --color=never | awk '{print $1}' | xargs git show
cat | git log --author="authorName" > author_commits_details.txt
그러면 커밋이 텍스트 형식으로 제공됩니다.
이 툴을 사용해 보세요.https://github.com/kamranahmedse/git-standup
사용.
$ git standup [-a <author name>]
[-w <weekstart-weekend>]
[-m <max-dir-depth>]
[-f]
[-L]
[-d <days-ago>]
[-D <date-format>]
[-g]
[-h]
각 플래그에 대한 설명은 다음과 같습니다.
- `-a` - Specify author to restrict search to (name or email)
- `-w` - Specify weekday range to limit search to (e.g. `git standup -w SUN-THU`)
- `-m` - Specify the depth of recursive directory search
- `-L` - Toggle inclusion of symbolic links in recursive directory search
- `-d` - Specify the number of days back to include
- `-D` - Specify the date format for "git log" (default: relative)
- `-h` - Display the help screen
- `-g` - Show if commit is GPG signed or not
- `-f` - Fetch the latest commits beforehand
사용자 이름의 일부를 사용하는 것만으로 생략할 수도 있습니다.
git log --author=mr #if you're looking for mrfoobar's commits
이 작은 스니펫을 .bashrc 파일에 추가하여 x 사용자의 로그 수를 컬러로 n개 표시합니다.
gitlog() {
if [ "$1" ] && [ "$2" ]; then
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "$1" --author="$2"
elif [ "$1" ]; then
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "$1"
else
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order
fi
}
alias l=gitlog
Frank의 최근 10개의 커밋을 표시하려면:
l 10 frank
모든 사용자가 최근 20개의 커밋을 표시하려면:
l 20
하지만 유용한 답변이 많이 있습니다.반면에, 다른 방법을 추가해 보자.를 사용할 수도 있습니다.
git shortlog --author="<author name>" --format="%h %s"
출력은 다음과 같이 그룹화되어 표시됩니다.
<Author Name> (5):
4da3975f dependencies upgraded
49172445 runtime dependencies resolved
bff3e127 user-service, kratos, and guava dependencies upgraded
414b6f1e dropwizard :- service, rmq and db-sharding depedencies upgraded
a96af8d3 older dependecies removed
총 이 5개의 커밋으로 .<Author Name>
이 경우에는 '아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 이런 것도 쓸 수 요.--all
git 저장소의 모든 지점(모든 지점)에 검색을 적용합니다.
한가지 캐치: git은 내부적으로 입력을 대조하려고 합니다.<author name>
git 데이터베이스에 작성자의 이름과 이메일이 기재되어 있습니다.대소문자를 구분합니다.
GitHub를 사용하는 경우:
- 지점에 가다
- 커밋을 클릭
아래 형식으로 목록이 표시됩니다.
branch_x: < comment>
author_name committed 2 days ago
- 각 작성자의 커밋을 표시하려면 , author_name 를 클릭해 주세요.그러면 해당 브랜치에서 해당 작성자의 커밋을 모두 볼 수 있습니다.
= 또는 "space"를 사용할 수 있습니다.예를 들어 다음 두 명령어는 동일한 값을 반환합니다.
git log --author="Developer1"
git log --author "Developer1"
내 경우:소스 트리를 사용하고 있는 경우는, 다음의 순서에 따릅니다.
- .
CRL+3
- 드롭다운 작성자 변경
- "Vinod Kumar"라는 이름을 입력.
다른 방법으로는 mergestat이라는 도구를 사용하여 리포의 커밋 기록에 대해 SQL 쿼리를 실행할 수 있습니다.
mergestat "SELECT * FROM commits WHERE author_name LIKE '%Jon%'"
좀 더 장황하지만 일반적인 방법으로 원하는 내용을 찾을 수 있는 유연성을 제공할 수 있습니다.
예를 들어, 특정 작성자로부터 머지 커밋을 제외해, 과거 1년간의 커밋만을 표시하는 경우:
mergestat "SELECT * FROM commits WHERE author_name LIKE '%Jon%' WHERE author_when > DATE('now', '-1 year') AND parents < 2"
완전 공개:저는 프로젝트의 메인터넌스입니다:)
인텔리J를 이용하시면
View -> Tool Windows -> Git
"로그"를 선택하고 "사용자: 모두"를 클릭합니다.
그런 다음 작성자의 이름을 입력하면 이 작성자의 모든 커밋이 표시됩니다.
언급URL : https://stackoverflow.com/questions/4259996/how-can-i-view-a-git-log-of-just-one-users-commits
'programing' 카테고리의 다른 글
SQL Server에서 INSER JOIN을 사용하여 삭제하려면 어떻게 해야 합니까? (0) | 2023.04.12 |
---|---|
WPF 버튼의 디폴트 마우스 오버 효과를 삭제하려면 어떻게 해야 합니까? (0) | 2023.04.12 |
performSelector의 셀렉터를 알 수 없기 때문에 누수가 발생할 수 있습니다. (0) | 2023.04.12 |
Bash의 'if' 문에서 두 문자열 변수를 비교하려면 어떻게 해야 합니까? (0) | 2023.04.12 |
cociapods - '팟 설치'에 시간이 오래 걸린다. (0) | 2023.04.12 |