programing

로컬 커밋되지 않은 변경사항과 출처를 구분하는 방법

batch 2023. 7. 5. 20:34
반응형

로컬 커밋되지 않은 변경사항과 출처를 구분하는 방법

리포지토리를 복제하고 파일을 수정하기 시작했다고 가정해 보겠습니다.로컬에서 커밋되지 않은 변경사항이 있을 경우 다음과 같이 변경할 수 있습니다.git diff test.txt현재 로컬 HEAD와 파일의 수정되거나 커밋되지 않은 변경 사항 간의 차이를 보여줍니다.이러한 변경 사항을 커밋하면 다음을 사용하여 원래 리포지토리와 다를 수 있습니다.git diff master origin/master

그러나 로컬로 커밋하기 전에 서버의 원래 리포지토리로 로컬 변경을 변경할 수 있는 방법이 있습니까?저는 다양한 순열을 시도했습니다.git diff --cached master origin/master불운하게도

원격 리포지토리가 다음을 통해 캐시되었음을 고려할 때git fetch이러한 커밋과 비교할 수 있어야 합니다.다음을 시도합니다.

$ git fetch origin
$ git diff origin/master

질문에 대한 정확한 답변이 아닌 것은 알지만, 분기에 있는 파일과 커밋되지 않은 로컬 파일에서 이 질문을 발견하고 공유하기로 했습니다.

구문:

git diff <commit-ish>:./ -- <path>

예:

git diff origin/master:./ -- README.md
git diff HEAD^:./ -- README.md
git diff stash@{0}:./ -- README.md
git diff 1A2B3C4D:./ -- README.md

(Eric Boehs에게 파일 이름을 두 번 입력하지 않아도 되는 방법에 대해 감사합니다.)

기존 파일에 대한 비단계(추가되지 않음) 변경 내용을 보려면 다음과 같이 하십시오.

git diff

새 파일은 추적되지 않습니다.스테이징된 커밋되지 않은 변경 내용을 보려면 다음과 같이 하십시오.

git diff --cached

파일을 시각적으로 비교하려면 다음을 사용할 수 있습니다.

git difftool

변경된 파일마다 디프 앱이 자동으로 시작됩니다.

PS: 만약 당신이 diff app을 설정하지 않았다면, 당신은 아래 예시와 같이 할 수 있습니다 (나는 Winmerge를 사용합니다):

git config --global merge.tool winmerge
git config --replace --global mergetool.winmerge.cmd "\"C:\Program Files (x86)\WinMerge\WinMergeU.exe\" -e -u -dl \"Base\" -dr \"Mine\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
git config --global mergetool.prompt false

일반적으로 다음 명령을 사용하면 커밋되지 않은 변경 사항을 포함하여 분기 간 차이(현재 분기 대 다른 분기)에 대한 모든 세부 정보를 얻을 수 있습니다.

$ git diff origin/master

커밋되지 않은 변경에 대한 diff를 무시하는 아래 명령과 다릅니다.

$ git diff origin/master..develop

몇 가지 옵션을 추가하여 차이를 필터링할 수 있습니다.

$ git diff origin/master [--name-only] [--diff-filter=A] [<path>]

옵션 '--diff-filter=A'는 오리진/마스터 분기에서 추가된 파일을 필터링하는 것을 의미합니다.그러나 그 전에 gitrm을 실행한 적이 있다면 먼저 gitstash에 변경 사항을 적용한 다음 gitrepo를 복원하고 나중에 stashed 변경 사항을 적용해야 합니다.그렇지 않으면 예상한 대로 적절한 차이가 나타나지 않습니다.

따라서 상태에 대한 '--name-status' 옵션을 사용하여 차이를 확인할 수 있습니다.

$ git diff origin/master [--name-status] 

언급URL : https://stackoverflow.com/questions/17688594/how-to-diff-between-local-uncommitted-changes-and-origin

반응형