Сравнение изменений в фиксации с текущим файлом на Git
Как вы можете показать, что различия в файле в последних 5 фиксируются в текущем незафиксированном файле с помощью Git -show?
Я внес изменения в свой файл, который разбивает мой код. Однако я не знаю, где это изменение.
Я хотел бы сравнить текущие незафиксированные файлы с недавним фиксатором (HEAD), с предыдущим фиксатором (^ HEAD) и по крайней мере 3 коммитами глубже.
Однако я не знаю, как вы можете сделать это эффективно.
При попытке увидеть изменения пяти последних коммитов одного файла на текущий файл в данной ветке я безуспешно запустил
git show next~5:handle_questions.php
Ответы
Ответ 1
Вот мой чит-лист:
# 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>
Ответ 2
Вы можете использовать git bisect для отслеживания фиксации, которая ввела ошибку.
Ответ 3
Чтобы увидеть разницу между handle_questions.php в рабочем каталоге и в репозитории 5, возвращается:
$ git diff HEAD~5 handle_questions.php
Ответ 4
Если вы знаете файл, в котором было внесено изменение, вы также можете использовать git blame <path>
- это даст вам историю каждой строки кода в следующем формате:
SHA (Author Timestamp Line Number) code