Я видалив файл із Git і потім скористався, тому файл більше не є в моїй робочій копії. Я хочу переглянути вміст цього файлу, але фактично не відновити його. Як я можу це зробити?
Я видалив файл із Git і потім скористався, тому файл більше не є в моїй робочій копії. Я хочу переглянути вміст цього файлу, але фактично не відновити його. Як я можу це зробити?
Відповіді:
git show HEAD^:path/to/file
Ви можете використовувати явний ідентифікатор фіксації або HEAD~nпереглядати старіші версії або якщо з моменту його видалення було більше одного комітету.
fatal: Invalid object name 'HEAD^'.(я мушу зазначити, що у мене є лише "Початкова
Якщо це файл, який ви деякий час видалили і не хочете полювати на перегляд , ви можете використовувати (файл названий fooу цьому прикладі; ви можете використовувати повний шлях):
git show $(git rev-list --max-count=1 --all -- foo)^:foo
У rev-listЗаклику виглядає для всіх редакцій , fooале тільки списки одного. Оскільки rev-listсписки у зворотному хронологічному порядку, то те, що в ньому перераховано, - це остання редакція, яка змінилася foo, яка була б командою, яку видалили foo. (Це ґрунтується на припущенні, що git не дозволяє змінювати видалений файл і все-таки залишатись видаленим.) Ви не можете просто скористатися версією, яка rev-listповертається як така, бо її fooвже немає. Ви повинні попросити той, який знаходиться безпосередньо перед ним, який містить останню версію файлу, отже, ^в git show.
**/fooякщо ви не знаєте шлях (це буде працювати для команди rev-list, але не для команди show. Однак, виконуючи команду з команди rev-list, ви можете знайти шлях).
Оскільки ви не можете згадати точний шлях, замість цього ви можете отримати sha1 з журналу git, тоді ви можете просто видати
git cat-file -p <sha1>
git whatchanged --no-abbrevце дає вихід, схожий на журнал git (або svn).
path/to/fileце повний шлях від верху проекту (верхнього репозиторію).