2013-06-13 7 views
5

OK Scenariusz wygląda następująco. . .Nie można uruchomić pliku git diff na pliku, który został przeniesiony

  1. Przenieś kilka plików w ramach nowego folderu w GIT
  2. Teraz chcę zobaczyć historię popełnienia jednego z tych plików
    • Normalnie git log filename wystarczyłoby
    • Ponieważ plik został przeniesiony Mogę to osiągnąć z git log--follow filename
  3. Komendy --follow daje mi pełną historię, ale niestety nie jestem w stanie pare dwa Shas w tej historii dla konkretnego pliku

Na przykład, mogę uruchomić git diff SHA1 SHA2: To zwróci wszystkie zmiany dokonane plików pomiędzy tymi zobowiązuje.

Jednak jeśli spróbuję sprowadzić go do poziomu pliku do porównania (git diff SHA1 SHA2 filename), nic nie zwraca!

(Choć poprzednia edycja show zmian SHA w tym pliku)

ktoś natknąć to wcześniej ..

Rozumiem, że między zobowiązuje plik ten został przeniesiony więc Próbowałem jak wariacje

git diff --follow SHA1 SHA2 filename

bezskutecznie.

Czy ktoś inny doświadczył tego, a jeśli tak, czy ma rozwiązanie tego problemu?

Odpowiedz

4

Inną opcją wartą rozważenia jest -M. Jednak w przypadku prawdopodobnego że to nie pomoże, albo można ręcznie powiedzieć git prawidłowe ścieżki plików, takich jak ten:

git diff SHA1:path/to/file1 SHA2:path/to/file2 

(Ścieżki muszą być w stosunku do najwyższego poziomu repo)

Powiązane problemy