은닉에 대한 Git diff 현재 작업 트리에 미치는

비스 태딩 변경 사항이 현재 작업 트리에 미치는 영향을 어떻게 확인할 수 있습니까? 적용하기 전에 어떤 변경이 이루어질 지 알고 싶습니다!



답변

가장 최근의 숨김을 확인하십시오.

git stash show -p

임의의 숨김을 참조하십시오.

git stash show -p stash@{1}

로부터 git stash맨 :

기본적으로이 명령은 diffstat를 표시하지만 git diff로 알려진 형식 (예 : git stash show -p stash @ {1})을 사용하여 두 번째 최신 숨김을 패치 형식으로 표시합니다.


답변

가장 최근 숨김을 보려면 :

git stash show -p

임의 숨김을 보려면

git stash show -p stash@{1}

또한 git diff를 사용하여 숨김을 분기와 비교합니다.

당신이 사용할 수있는:

git diff stash@{0} master

지점 마스터와 비교 한 모든 변경 사항을 볼 수 있습니다.

또는 다음을 사용할 수 있습니다.

git diff --name-only stash@{0} master

변경된 파일 이름 만 쉽게 찾을 수 있습니다.


답변

보관 된 변경의 기반이되는 분기가 그 동안 변경된 경우이 명령이 유용 할 수 있습니다.

git diff stash@{0}^!

이것은 숨김을 기반으로 한 커밋과 비교합니다.


답변

작업 트리가 더러 우면 먼저 더티 작업 트리를 커밋 한 다음 스 태시와 비교하여이를 스 태시와 비교할 수 있습니다. 나중에 더티 작업 트리를 사용하여 커밋을 취소 할 수 있습니다 (커밋 로그에 더티 커밋을 원하지 않을 수도 있음).

다음 방법을 사용하여 두 스 태쉬를 서로 비교할 수 있습니다 (이 경우 스 태쉬 중 하나만 처음에 팝).

  • 더러운 작업 트리를 커밋하십시오.

    git add .
    git commit -m "Dirty commit"
    
  • 커밋으로 숨겨 놓으십시오.

    git diff HEAD stash@{0}
    
  • 그런 다음 커밋을 되돌리고 작업 디렉토리에 다시 넣을 수 있습니다.

    git reset --soft HEAD~1
    git reset .
    

이제 당신은 더러워진 나무를 숨겨 놓았으며, 처음 있던 곳으로 돌아 왔습니다.


답변

@Magne의 답변 은 질문에 대한 가장 유연하고 유용한 해석에 대답 하는 유일한 (매우 늦은) 날짜이지만 필요한 것보다 상당히 복잡합니다. 커밋하고 재설정하는 대신 작업 복사본을 숨기고 비교 한 다음 고정 해제하십시오.

git stash save "temp"
git diff stash@{0} stash@{1}
git stash pop

즉, 작업 폴더 변경 사항을 임시 스택의 최상위 스택 (stash @ {0})으로 만들고 원래의 최상위 스택을 아래로 이동하여 (stash @ {1}) 숨김 스택의 상단과 작업 폴더의 차이점을 보여줍니다. ) 그런 다음 ‘새 세트’위치에서 원래 상단을 사용하여 비교하여 현재 작업 위에 적용했을 때의 변경 사항을 확인할 수 있습니다.

“하지만 현재 작업이 없다면 어떻게해야합니까?” 그렇다면 당신은 정상적인 지루한 경우에 있습니다. @ Amber의 답변을 사용하십시오.

git stash show

또는 @czerasz의 답변

git diff stash@{0}

어쨌든 스 태싱 및 스 태싱이 빠르고 쉽다는 것을 인정하십시오. 변경 사항을 스 태싱하고 검사하십시오. 현재 원하지 않는 경우 버립니다 (현재 색인 / 작업 폴더 변경). 그게 다야

git stash apply
git diff
git reset
git checkout

답변

이것은 git 버전 1.8.5.2에서 작동합니다.

git diff stash HEAD

답변

작업 트리와 숨김에서 파일을 비교하려면 아래 명령을 사용하십시오.

git diff stash@{0} -- fileName (with path)