2012-08-13 19 views
37

Próbujesz uzyskać diff mój lokalny plik z repozytorium GitHub zanim prześlę żądanie ściągnięcia, aby zobaczyć, co się pojawi, czy istnieje dokładny sposób na zrobienie tego? Zakładam, że narzędzie porównywania GitHub'a manipuluje Git's diff?git diff między zdalnym a lokalnym repo

+1

Możesz dokonać porównania git bez wysyłania do pliku tekstowego. Oglądanie w konsoli jest ogólnie wydajne moim zdaniem. –

+0

@dystroy Wiem, ale moim problemem były Windows LF i Windows, więc całe pliki były śledzone jako diff'd. Zauważyłem, że konsola nie jest wydajna dla tak dużego wyjścia. – Terry

+0

Z jakiego narzędzia korzystasz w systemie Windows? Myślę, że standardowa parametryzacja msysgit obsługuje to automatycznie. –

Odpowiedz

34

nie rób pull:

  • zrobić fetch (składnia jest taka sama jak git pull, ale to nie oznacza automatycznie łączyć)
  • zrobić diff między oddziału dest, a druga oddział
  • następnie zrobić merge jeśli chcesz
2

na komentarz PO, że część jego „problemem był system Windows vs. U nix LFs "powinno to pomóc:

Możesz użyć następującego polecenia konfiguracyjnego, aby nakazać git-diff zignorować różnicę kodu eol.

git config --global core.whitespace cr-at-eol 
54

Aby porównać lokalny katalog roboczy na zdalnym oddziału, na przykład pochodzenia/Master:

  1. git fetch origin master
    Mówi git sprowadzić oddział o nazwie 'mistrz' od zdalnego o nazwie "pochodzenie". Git fetch będzie nie wpływać na pliki w katalogu roboczym; nie próbuje scalać zmian takich jak git pull.
  2. git diff --summary FETCH_HEAD
    Gdy pilot oddział jest naciągane, może odwoływać się lokalnie poprzez FETCH_HEAD. Powyższe polecenie mówi git, aby odróżniał pliki katalogów roboczych od HEAD od gałęzi FETCHed i raportuje wyniki w formacie podsumowania. Format podsumowania daje przegląd zmian, zwykle dobry sposób na rozpoczęcie;
  3. git diff FETCH_HEAD -- mydir/myfile.js
    Jeśli chcesz zobaczyć zmiany do konkretnego pliku, na przykład myfile.js pominąć opcję --summary i odwoływać się do pliku, który chcesz (lub drzewa).
+0

Aktualizowanie od tego czasu zapewnia więcej szczegółów niż inne odpowiedzi. – paxdiablo

+2

Przeszumowano ze względu na szczegóły i wyjaśnienia kontekstu. Jeśli ktoś zadaje to pytanie, prawdopodobnie zaczynają od git. Kontekst i jasne wyjaśnienia są ważne, gdy próbujesz owinąć głowę wokół nowej technologii i na pewno nigdy nie skrzywdzisz. –

+4

Dodałbym: 2b. 'git diff --stat FETCH_HEAD', aby dostarczyć nieco więcej informacji, jeśli' --summary' nie wystarczy. – Randall

Powiązane problemy