Git показывает изменения всего файла

Есть ли способ заставить команду git show отображать все содержимое файла при просмотре фиксации? Например: если в настоящее время он показывает что-то вроде

foo.cpp

+++ int main() {
+++    std::cout << "HELLO" << std::endl;
+++ }

Я бы хотел, чтобы вывод сказал:

foo.cpp

#include <stdio> //assuming this was from an earlier commit

+++ int main() {
+++    std::cout << "HELLO" << std::endl;
+++ }

Есть ли простой способ сделать это?


person Lily Mara    schedule 01.12.2014    source источник


Ответы (2)


Это своего рода хак, но git show (как и git diff) имеет параметр -U, который позволяет вам указать, сколько строк контекста показывать. Если вы используете число, которое больше, чем область между разницей и началом или концом файла, тогда будет показан весь файл. Поэтому, если вы используете действительно большое число, оно будет работать так, как вы хотите (надеюсь), на любом файле, на котором вы его попробуете:

git show -U99999
person Ismail Badawi    schedule 01.12.2014

Эта команда показывает весь файл:

git show HEAD:./<path_to_file>

И это работает также для любой ревизии:

git show <rev-id>:./<path_to_file>
person knst    schedule 13.07.2018