이것은 종종 나에게 일어난다 :
나는 하루나 이틀 동안 동시에 두 가지 관련 변경 사항을 작업하고 있으며 커밋 할 때 특정 파일에서 변경된 내용을 잊어 버립니다. (이것은 개인 git repo이므로 커밋에서 둘 이상의 업데이트가 가능합니다.)
체크인하려는 로컬 파일과 해당 파일의 마지막 커밋 사이의 변경 사항을 미리 볼 수있는 방법이 있습니까?
다음과 같은 것 :
git diff --changed /myfile.txt
그리고 다음과 같이 인쇄됩니다.
line 23
(last commit): var = 2+2
(current): var = myfunction() + 2
line 149
(last commit): return var
(current): return var / 7
이렇게하면 마지막으로 체크인 한 이후 해당 파일에서 수행 한 작업을 빠르게 확인할 수 있습니다.
답변
git add
아직 먹지 않은 것을보고 싶다면 :
git diff myfile.txt
또는 이미 추가 된 변경 사항을 보려면
git diff --cached myfile.txt
답변
git diff HEAD file
마지막 커밋에서 작업 트리에 추가 한 변경 사항이 표시됩니다. 모든 변경 사항 (단계적 또는 단계적 제외)이 표시됩니다.
답변
로컬 차이를 확인하려면
git diff myfile.txt
또는 diff 도구를 사용할 수 있습니다 (일부 변경 사항을 되돌리려는 경우).
git difftool myfile.txt
git difftool
보다 효율적으로 사용하려면 Meld, DiffMerge 또는 OpenDiff와 같은 즐겨 사용하는 GUI 도구를 설치하고 사용하십시오.
참고 : .
파일 이름 대신 (을)를 사용하여 현재 디렉토리 변경 사항을 볼 수도 있습니다 .
각 라인마다 변경 사항을 확인하려면 다음 git blame
을 사용하십시오. 커밋에서 커밋 된 라인을 표시합니다.
커밋하기 전에 실제 파일을 보려면 ( master
브랜치가 있는 곳 ) 다음을 실행하십시오.
git show master:path/my_file
답변
에 대한 -v
(또는 --verbose
) 옵션을 시도 했습니까 git commit
? 메시지 편집기에서 커밋 차이를 추가합니다.
답변
파일을 가장 확약적인 마지막 커밋과 비교하려는 경우 고려해야 할 또 다른 기술 :
git diff master myfile.txt
이 기술의 장점은 다음을 사용하여 두 번째 커밋과 비교할 수 있다는 것입니다.
git diff master^ myfile.txt
그리고 그 전에 하나 :
git diff master^^ myfile.txt
또한 마스터 브랜치에 있지 않은 경우 캐럿 ‘^’문자로 ‘~’를 대체하고 ‘마스터’로 ‘you branch name’을 ‘you’로 대체 할 수 있습니다.
답변
이것이 GUI를 보증하는 완벽한 유스 케이스라고 생각합니다. -나는 그것이 명령 줄 내에서도 충분히 달성 될 수 있음을 완전히 이해하고 있지만.
개인적으로, 모든 커밋은 git-gui에서 수행합니다. 필요한 경우 별도의 덩어리 / 줄로 여러 개의 원자 커밋을 수행 할 수 있습니다.
Gut Gui를 사용하면 형식이 잘 지정된 색상의 인터페이스에서 diff를 볼 수 있으며 다소 가볍습니다. 이것도 체크 아웃해야 할 것 같습니다.
답변
macOS에서 git root 디렉토리로 이동하여 git diff *