특정 파일을 변경한 모든 커밋을 나열하려면 어떻게 해야 합니까?
특정 파일을 변경한 모든 커밋을 나열하는 방법이 있습니까?
그--follow특정 파일에 대해 기능합니다.
git log --follow -- filename
주어진 다른 솔루션과의 차이점
기타 솔루션에는 다음이 포함됩니다.git log path(미포함)--follow디렉토리내의 변경등을 추적하는 경우는, 이 어프로치가 편리합니다만, 파일명이 변경되었을 때(따라서 를 사용).
저는 이것을 자세히 살펴봤지만, 이 모든 답변들이 모든 지점에 걸친 모든 커밋을 보여주는 것 같지는 않습니다.
gitk 편집 뷰 옵션을 만지작거리면서 생각해낸 것은 다음과 같습니다.브랜치, 로컬, 리프로그 및 리모트에 관계없이 파일에 대한 모든 커밋이 표시됩니다.
gitk --all --first-parent --remotes --reflog --author-date-order -- filename
또, 와도 사용할 수 있습니다.git log:
git log --all --first-parent --remotes --reflog --author-date-order -- filename
git log path네가 하고 싶은 대로 해man 페이지부터:
[--] <path>…
Show only commits that affect any of the specified paths. To prevent confusion with
options and branch names, paths may need to be prefixed with "-- " to separate them
from options or refnames.
특정 파일에 대한 커밋을 가져오려면 다음 명령을 사용합니다.
git log -p filename
이 방법은 다음과 같이 간단해야 합니다.git log <somepath>; manpage를 확인합니다(git-log(1)).
개인적으로 사용하는 것은git log --stat <path>각 커밋이 파일에 미치는 영향을 확인할 수 있습니다.
또는 (Git 1.8.4 이후) 파일의 특정 부분을 변경한 모든 커밋을 가져올 수도 있습니다.시작줄과 끝줄 번호를 전달하면 얻을 수 있습니다.
반환되는 결과는 이 특정 부분을 수정한 커밋 목록입니다.명령어는 다음과 같습니다.
git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>
어디에upperLimit는start_line_number그리고.lowerLimit는ending_line_number
상세정보 - https://www.techpurohit.in/list-some-useful-git-commands
jackrabb1t가 지적했듯이--follow는 이름 변경 또는 이름 변경 이외의 이력을 계속 표시하기 때문에 더 강력합니다.따라서 현재 같은 경로에 없는 파일 또는 다양한 커밋을 통해 이름이 변경된 파일을 찾는 경우--follow추적할 겁니다.
이름/경로 변경을 시각화하는 경우 이 옵션이 더 좋습니다.
git log --follow --name-status -- <path>
그러나 중요한 것만 포함하는 보다 콤팩트한 목록을 원하는 경우:
git log --follow --name-status --format='%H' -- <path>
또는 심지어
git log --follow --name-only --format='%H' -- <path>
단점은 이라는 것이다--follow는 단일 파일에 대해서만 작동합니다.
특정 파일 사용에 대한 모든 커밋을 가져오려면:
git rev-list HEAD --oneline FileName
예를들면
git rev-list HEAD --oneline index.html
산출량
7a2bb2f update_index_with_alias
6c03e56 update_changes
e867142 Revert "add_paragraph"
하려면 , 「」를 사용해 .filename가 아니라 filepath: , "사용방법:
git log --all -- '*.wmv'
( 자체의 ) 파일을 한 커밋에서 이루어진 (변경 뿐만 아니라) 을 .--full-diff:
git log -p --full-diff [branch] -- <path>
이전 커밋에서 삭제된 파일을 추적하려면
git log --follow -- filename
파일을 변경한 모든 커밋을 모든 브랜치에서 표시하려면 다음 명령을 사용합니다.
git log --follow --all <filepath>
git log --all <filename>을 미치는 커밋을 <filename>모든 지점에서
gitk <path_to_filename>
패키지 "gitk"가 이미 설치되어 있다고 가정합니다.
인스톨 되어 있지 않은 경우는, 다음의 순서에 따릅니다.
sudo apt-get install gitk
그런 다음 위의 명령을 사용해 보십시오.Linux용입니다.Linux 사용자가 GUI를 원할 경우 도움이 될 수 있습니다.
커밋 해시 목록을 가져오려면 다음 명령을 사용합니다.
git rev-list HEAD <filename>
출력:
b7c4f0d7ebc3e4c61155c76b5ebc940e697600b1
e3920ac6c08a4502d1c27cea157750bd978b6443
ea62422870ea51ef21d1629420c6441927b0d3ea
4b1eb462b74c309053909ab83451e42a7239c0db
4df2b0b581e55f3d41381f035c0c2c9bd31ee98d
리스트의 첫 커밋은 5번째입니다.b7c4f0d7가장 최근의 것입니다.
# Shows commit history with patch
git log -p -<no_of_commits> --follow <file_name>
# Shows brief details like "1 file changed, 6 insertions(+), 1 deletion(-)"
git log --stat --follow <file_name>
Linux 에서는, gitk 를 사용할 수 있습니다.
sudo apt-get install git-gui gitk를 사용하여 설치할 수 있습니다.「gitk<Filename>」에 의해서, 특정의 파일의 커밋을 표시할 수 있습니다.
언급URL : https://stackoverflow.com/questions/3701404/how-to-list-all-commits-that-changed-a-specific-file
'programing' 카테고리의 다른 글
| Swift에서 dispatch_once singleton 모델 사용 (0) | 2023.04.19 |
|---|---|
| 변경을 잃지 않고 마지막으로 푸시되지 않은 git 커밋을 언커밋하는 방법 (0) | 2023.04.19 |
| 동적 셀 액세스 (0) | 2023.04.14 |
| Linux에서 Bash에서 여러 파일을 한 번에 삭제하려면 어떻게 해야 합니까? (0) | 2023.04.14 |
| 다음 코드에서의 sys.sp_addextended property 사용에 대해 설명해 주시겠습니까? (0) | 2023.04.14 |
