Ответ 1
Если вы хотите увидеть, что еще не было git add
ed:
git diff myfile.txt
или если вы хотите увидеть уже - add
ed изменения
git diff --cached myfile.txt
Это часто происходит со мной:
Я работаю над несколькими связанными изменениями в одно и то же время в течение дня или двух, и когда мне нужно сделать это, я в конечном итоге забываю, что изменилось в определенном файле. (Это всего лишь личный репозиторий git, поэтому я уверен, что в коммите есть более одного обновления.)
Есть ли способ просмотреть изменения между моим локальным файлом, который должен быть установлен, и последним фиксацией для этого файла?
Что-то вроде:
git diff --changed /myfile.txt
И он выведет что-то вроде:
line 23
(last commit): var = 2+2
(current): var = myfunction() + 2
line 149
(last commit): return var
(current): return var / 7
Таким образом, я мог бы быстро увидеть, что я сделал в этом файле, так как он был последним.
Если вы хотите увидеть, что еще не было git add
ed:
git diff myfile.txt
или если вы хотите увидеть уже - add
ed изменения
git diff --cached myfile.txt
git diff HEAD file
покажет вам изменения, которые вы добавили в свою рабочую строку из последней фиксации. Все изменения (поставленные или не поставленные) будут показаны.
Я думаю, что это идеальный вариант использования, который требует GUI. - Хотя я полностью понимаю, что он также может быть достигнут достаточно хорошо в командной строке.
Лично, каждое мое совершение, я делаю из git -gui. В котором я могу сделать несколько атомных коммитов с отдельными hunks/lines, если это имеет смысл сделать это.
Gut Gui позволяет просматривать различия в хорошо отформатированном цветном интерфейсе, довольно легкий. Похоже, вы тоже должны проверить.
Вы попробовали вариант -v
(или --verbose
) для git commit
? Он добавляет diff фиксации в редакторе сообщений.
Чтобы проверить локальные различия:
git diff myfile.txt
или вы можете использовать инструмент diff (в случае, если вы хотите вернуть некоторые изменения):
git difftool myfile.txt
Чтобы более эффективно использовать git difftool
, установите и используйте свой любимый инструмент графического интерфейса, такой как Meld, DiffMerge или OpenDiff.
Примечание. Вы также можете использовать .
(вместо имени файла), чтобы увидеть текущие изменения dir.
Чтобы проверить изменения для каждой строки, используйте: git blame
, в котором будет отображаться, какая строка была совершена, в которой зафиксировано.
Чтобы просмотреть фактический файл перед фиксацией (где master
является вашей веткой), запустите:
git show master:path/my_file
Еще один способ рассмотрения, если вы хотите сравнить файл с последним фиксатором, который более педантичен:
git diff master myfile.txt
Преимущество этой методики заключается в том, что вы также можете сравнить с предпоследней фиксацией с помощью:
git diff master^ myfile.txt
и один до этого:
git diff master^^ myfile.txt
Также вы можете заменить "~" на символ "^" и "имя ветки" для "master", если вы не находитесь на главной ветке.
Перейдите в корневой каталог git и введите git diff *
Лучшим способом, который я нашел, помимо использования специального графического интерфейса фиксации, является использование git difftool -d
. Это открывает инструмент diff в режиме сравнения каталогов, сравнивая HEAD с текущей грязной папкой.