Расставить инсценированный файл с одним в тайнике
Есть ли опция --staged (aka --cached) для сравнения файлов из git stash?
Здесь я сравниваю самый последний коммит с поэтапным файлом (я использую явный синтаксис @{}, но я знаю, что @{0} может быть выведен):
git diff stash@{0}:spec/blueprints.rb HEAD:spec/blueprints.rb
И здесь я сравниваю спрятанный файл с тем, что находится на диске:
git diff stash@{0}:spec/blueprints.rb spec/blueprints.rb
Как я могу сравнить то, что в настоящее время поставлено с тем, что находится в тайнике? Это не работает:
git diff --staged stash@{0}:spec/blueprints.rb spec/blueprints.rb
2 ответа
git diff --cached 'stash@{0}' -- spec/blueprints.rb
... Возможно, что кавычки не нужны, но вы никогда не знаете, как ваша оболочка может вас удивить.
:<n>:<path>, e.g. :0:README, :README
Двоеточие, за которым необязательно следует номер этапа (от 0 до 3), и двоеточие, за которым следует путь, именует объект BLOB-объекта в индексе по указанному пути. Отсутствующий номер этапа (и двоеточие, следующее за ним) именует запись этапа 0. Во время объединения стадия 1 является общим предком, стадия 2 является версией целевой ветви (обычно текущей ветвью), а стадия 3 является версией из ветви, которая объединяется.