2016-12-20 16 views
0

동일한 파일의 stagedunstaged 버전 간의 차이점을 보는 방법이 있습니까? 예를 들어difftool을 사용하여 동일한 파일의 준비 및 버전없는 버전 간의 차이점

: 그것을 준비하지 않고, 내가 변화를 준비하고 나는 다시 파일을 수정할 때이 문제가 발생

Changes to be committed: 

    modified: conf/application.conf 

Changes not staged for commit: 
    (use "git add/rm <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

    modified: conf/application.conf 

. 나는 diff/difftool 명령을 사용할 필요가 있기 때문에

EDIT

git status -vv 명령은 충분하지 않습니다. 실제로는 너무 많은 파일에 너무 많은 변경 사항이 있기 때문에 모든 파일을 스크롤하는 것이 효율적이지 않기 때문입니다. 그러나 diff/difftool은 내가 관심있는 파일을 지정할 수있게 해준다.

+0

그것은 같은 파일입니다. – Maroun

+0

@MarounMaroun 예, 그게 핵심입니다. 힘내는 파일 자체가 아닌 파일 변경에 집중합니다. 이 질문을 참조하십시오 : https://stackoverflow.com/questions/24837841/git-can-a-file-be-both-staged-and-unstaged-for-commit – DrKaoliN

답변

8

git diff은 작업 공간과 색인의 차이점을 보여줍니다. 우리가 일반적으로 체크 무슨 대 작업 공간의 변화를 볼 수 git diff를 사용하기 때문에이 분명 보이지 않을 수도

(준비된 파일이 사는 곳의 인덱스입니다.) 그러나, 기술적으로 git diff 인덱스 대 작업 영역 표시하며, 경우 색인에 변경 사항을 추가하지 않은 경우 색인은 체크 아웃 한 항목과 일치합니다.

  • 는 REPO 대 작업 공간을 볼 수 있습니다 : git diff HEAD
  • 이 REPOS 대 인덱스를 볼 수 : git diff --cached
  • 인덱스 대 작업 공간을 볼 수 : git diff
+0

고마워요! 그게 내가 찾고 있던 대답이다. – DrKaoliN

0

파일을 텍스트로 변경 한 것을 볼 수있다. doc을 참조하십시오.

+0

이것은 내 질문에 대답하지 않습니다. – DrKaoliN

+0

@DrKaoliN을 정교하게 해석 할 수 있습니까? 오해 할 수도 있습니다. 이 명령을 실행하면 준비가 끝난 이후 발생한'conf/application.conf'에 대한 모든 변경 사항이 표시됩니다. 'conf/application.conf'의 준비와 무대화 버전의 차이점을 보여주는 것과 같은 것이 아닙니까? –

+0

음, diff 명령이나'difftool' 명령을 사용해야하기 때문에 특정 명령이 도움이되지 않습니다. 지정된 파일에 대한 차이점을 볼 수 있습니다. 즉,'git diff conf/application.conf ''git status -vv conf/application.conf'라고 입력하면 콘솔의 모든 변경 사항이 표시됩니다. 실제로는 하나의 파일 만 수정하면 안되기 때문에 수십 개의 파일과 수십 개의 수정 된 코드 줄이 있으며, 필요한 부분을 찾기 위해 수 분 동안 스크롤하는 것이 효율적이지 않습니다. 그러나 사실, 당신의 대답은 정확합니다. – DrKaoliN