Подтвердить что ты не робот

Сравнение изменений в фиксации с текущим файлом на Git

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

Я внес изменения в свой файл, который разбивает мой код. Однако я не знаю, где это изменение.

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

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

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

git show next~5:handle_questions.php
4b9b3361

Ответ 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