Сравнение изменений в коммитах с текущим файлом Git - PullRequest
19 голосов
/ 20 августа 2009

Как вы можете показать различия файла за последние 5 коммитов с текущим незафиксированным файлом Git-show?

Я внес изменение в свой файл, что нарушает мой код. Тем не менее, я не знаю, где это изменение.

Я бы хотел сравнить текущие незафиксированные файлы с последним коммитом (HEAD), с предыдущим коммитом (^ HEAD) и, по крайней мере, с 3 коммитами глубже.

Однако я не знаю, как вы можете сделать это эффективно.

Пытаясь увидеть изменения пяти последних коммитов одного файла в текущий файл в данной ветке, я безуспешно запустил

git show next~5:handle_questions.php

Ответы [ 5 ]

46 голосов
/ 20 августа 2009

Вот мой шпаргалка:

# uncommited file to HEAD
git diff <path>

# uncommited file to before last commit
git diff HEAD^ -- <path>

#last commit to before last commit
git diff HEAD^ HEAD -- <path>

#difference between HEAD and n-th grandparent
git diff HEAD~n HEAD -- <path>

#Another cool feature is whatchanged command
git whatchanged -- <path>
3 голосов
/ 20 августа 2009

Чтобы увидеть разницу между handle_questions.php в рабочем каталоге и в хранилище 5 коммитов, используйте:

$ git diff HEAD~5 handle_questions.php
3 голосов
/ 20 августа 2009

Вы можете использовать git bisect для отслеживания коммита, который привел к ошибке.

2 голосов
/ 26 августа 2009

Если вам известен файл, в который было внесено изменение, вы также можете использовать git blame <path> - это даст вам историю каждой строки кода в следующем формате:

SHA (Author Timestamp Line Number) code
0 голосов
/ 21 ноября 2018

От @db_ ответа (но показано в качестве фактического примера)

Я просто хочу посмотреть, какая разница между текущим файлом и последним коммитом только для одного файла.

git diff scripts/processQueue.php


-  if( filemtime( $filename ) < time() - 10 ) {
+  $filemtime=filemtime($filename);
+  if( $filemtime < time() - 10 && $filemtime> (time() - 86400)) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...