나는 일을 한 후 코드를 변경 검사 싶습니다 git pull. 현재는 어떤 파일이 변경되는지 보여주고 있습니다. 어떤 코드가 변경되었는지 어떻게 확인할 수 있습니까?
답변:
@iblue가 a fetch와 diff병합하기 전에 변경 사항을 검토 할 수 있습니다 .
$ git fetch
$ git diff master...origin/master
공유 된 상위 및 원본 / 마스터 ( x아래에 표시된 커밋 ) 에 대한 차이를 의미하는 삼중 기간에 유의하십시오 .
SP---o---o [master]
\
x---x [origin/master]
pull 출력의 첫 번째 줄은 다음과 같습니다.
$ git pull
Updating 37b431a..b2615b4
...
그런 다음 간단히 수행 할 수 있습니다.
$ git diff 37b431a..b2615b4
또는 다른 명령 :
$ git log --name-status 37b431a..b2615b4
뽑은 지 오래되었고 마지막 뽑기에서 가져온 변경 사항을 알고 싶다면 다음을 사용하여 조회 할 수 있습니다.
$ git reflog | grep -A1 pull | head -2
풀 후의 해시와 풀 전의 해시를 보여줍니다.
b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master
그런 다음 다음 두 해시로 동일한 작업을 수행 할 수 있습니다.
git diff 37b431a..b2615b4
git pull는 git fetch및 의 바로 가기 일 뿐이 므로 원본에서 분기를 가져온 다음 병합하기 전에 차이점을 표시하도록 git merge실행할 수 있습니다 git fetch. 이렇게 :
git fetch # Load changes from remote server
git diff master origin/master # Show differences
git merge origin/master # Merge remote changes with local changes
master가 아닌 다른 브랜치에서 실행하는 경우 , 물론 위 명령에서 브랜치 이름을 변경해야합니다.
가져온 내용을 바로 이전 커밋의 소스와 비교할 수 있습니다.
git diff branch_name@{1}
예 :
git diff master@{1}
n 커밋 뒤에있는 소스와 비교하기 위해,
git diff branch_name@{n}
@{n}구문 실제로 수단 nth이전 위치 분기 / 헤드한다. 당신이 풀을했던 지난 시간이 있기 때문에 예를 들어, 10 커밋이 있었다 master@{1}사전을 참조 할 위치 의 master10, 커밋 하기 전에. 이것이 사용 @{n}이 풀 후 변경 사항을 확인하는 데 유용한 이유 입니다.
이것으로 밀고 당기면서 어떤 변화가 있는지 확인할 수 있습니다.
git log --stat