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;
+++ }

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

2 ответа

Решение

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

git show -U99999

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

git show HEAD:./<path_to_file>

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

git show <rev-id>:./<path_to_file>
Другие вопросы по тегам