git diff
명령을 사용하여 변경 사항을 확인할 수 있지만 이해하는 한 디렉토리 기반입니다. 이는 현재 디렉토리에있는 모든 파일의 모든 변경 사항을 제공함을 의미합니다.
하나의 특정 파일에서 변경 사항 만 확인하려면 어떻게합니까? 예를 들어 파일 file_1.rb
, file_2.rb
..., 을 변경 file_N.rb
했지만 파일의 변경에만 관심이 있습니다 file_2.rb
. 커밋하기 전에 이러한 변경 사항을 어떻게 확인합니까?
git diff
명령을 사용하여 변경 사항을 확인할 수 있지만 이해하는 한 디렉토리 기반입니다. 이는 현재 디렉토리에있는 모든 파일의 모든 변경 사항을 제공함을 의미합니다.
하나의 특정 파일에서 변경 사항 만 확인하려면 어떻게합니까? 예를 들어 파일 file_1.rb
, file_2.rb
..., 을 변경 file_N.rb
했지만 파일의 변경에만 관심이 있습니다 file_2.rb
. 커밋하기 전에 이러한 변경 사항을 어떻게 확인합니까?
답변:
다음과 같은 명령을 사용하십시오.
git diff file_2.rb
차이점을 얻을 수있는 종류에 대한 자세한 내용은 git diff
설명서 를 참조하십시오 .
일반적으로 현재 디렉토리 만이 아니라 git diff
전체 저장소 의 모든 변경 사항이 표시됩니다 .
다른 방법 ( 이 SO answer 에서 언급 됨 )은 터미널에 기록을 유지하고 파일 자체에 대한 매우 깊은 기록을 제공합니다.
git log --follow -p -- file
파일의 전체 히스토리가 표시됩니다 (이름 변경 이후의 히스토리 및 각 변경마다 차이가있는 히스토리 포함).
즉, bar라는 파일 이름이 foo로 이름 지정된 경우 git log -p bar (-follow 옵션없이)는 파일 이름이 바뀐 지점까지만 파일 기록을 표시합니다. foo로 알려진 파일의 기록. git log --follow -p bar를 사용하면 파일이 foo라고 알려진 파일의 변경 사항을 포함하여 파일의 전체 기록을 표시합니다.
아래 명령을 사용하여 파일에서 누가 무엇을 변경했는지 확인할 수 있습니다.
git blame <filename>
git blame <filename> | grep <searchfor>
위치를 수행하십시오 <searchfor>
. 예를 들어, 변경 누구인지 찾기 위해 foo
에 bar
에 dist/index.php
, 당신은 사용합니다git blame dist/index.php | grep bar
특정 파일 변경에 대한 세부 정보 만 커밋하려면
git log --follow file_1.rb
동일한 파일에 대한 다양한 커밋 간의 차이점을 나열합니다.
git log -p file_1.rb
커밋과 메시지 만 나열하기 위해
git log --follow --oneline file_1.rb
당신은 또한 시도 할 수 있습니다
git show <filename>
커밋의 경우, git show 는 로그 메시지와 텍스트 차이 (파일과 커밋 된 버전 사이의 파일)를 표시합니다.
자세한 내용은 git show Documentation 을 확인할 수 있습니다 .
또는 자체 GUI 도구를 사용하려는 경우 :
git difftool ./filepath
이 게시물에서 안내하는 GUI 도구를 설정할 수 있습니다 : 시각적 diff 프로그램으로 'git diff'출력을 어떻게 볼 수 있습니까?