Если я побегу git stash -u
, я могу спрятать неотслеживаемые файлы. Однако указанные неотслеживаемые файлы вообще не отображаются с расширением git stash show stash@{0}
. Есть ли способ показать скрытые файлы без отслеживания?
Неотслеживаемые файлы хранятся в третьем родительском элементе фиксации тайника. (На самом деле это не задокументировано, но довольно очевидно из коммита, который представил функцию -u, 787513 ... , и как остальная часть документации дляgit-stash
фраз ... или просто путем выполнения git log --graph stash@{0}
)
Вы можете просмотреть только «неотслеживаемую» часть тайника с помощью:
git show stash@{0}^3
или просто само "неотслеживаемое" дерево через:
git show stash@{0}^3:
или конкретный "неотслеживаемый" файл в дереве через:
git show stash@{0}^3:<path/to/file>
К сожалению, нет хорошего способа получить сводную информацию о различиях между всеми стадиями + неустановленными + неотслеживаемыми и «текущими» состояниями. то есть: git show stash@{0}
нельзя заставить включать неотслеживаемые файлы. Это связано с тем, что древовидный объект фиксации тайника, называемый как stash@{0}:
, не включает никаких изменений от третьего, «неустановленного» родителя.
Это связано со способом повторного применения тайников: отслеживаемые файлы можно легко применить как исправления, тогда как неотслеживаемые файлы могут применяться только теоретически как «целые файлы».
git stash show
похоже, показывает разницу между рабочей копией и №1 (соответствующий код из git-stash.sh:,git diff ${FLAGS:---stat} $b_commit $w_commit
в котором $ b_commit - №1, а $ w_commit - фиксация тайника); есть ли встроенный способgit stash show
включить № 3?git log --graph --topo-order -m -u
. matthewlmcclure.com/s/2014/01/10/…fatal: ambiguous argument 'stash@{0}^3': unknown revision or path not in the working tree.
) , если вы не на самом деле имеют неотслеживаемые файлы в этом притоне (но думал , что ты сделал).git stash show
ничего не показывают неотслеживаемые файлы (истинные , по крайней мере , мерзавец 2.7.4):git stash pop
сначала попытается восстановить неотслеживаемые файлы, а затем попытается восстановить отслеженные файлы. Если последняя операция завершилась неудачно (например, конфликт), первая операция не откатывается (unracked-file-stash останется как есть, но файлы не будут удалены с диска), поэтому, даже если вы исправите конфликт, следующее всплывающее сообщение не удастся тем не мение.Вы можете перечислить все коммиты тайника с помощью следующей команды:
Поскольку тайники представлены как 3-сторонняя фиксация слияния HEAD, индекса и «корневого» фиксации неотслеживаемых файлов без родительского контроля, тайники неотслеживаемых файлов могут быть перечислены путем передачи вышеприведенного вывода в следующее:
Полезные приложения из вышеперечисленного:
Показывать только неотслеживаемые, спрятанные файлы
Конечно, удалите,
--stat
чтобы увидеть содержимое файлов.Найдите конкретный файл
Grep неотслеживаемые файлы
Список всего содержимого всех тайников
источник
Чтобы перечислить неотслеживаемые файлы в тайнике:
Чтобы показать полную разницу всех неотслеживаемых файлов (с содержимым):
Эти команды читают последний (самый последний) тайник. Для более ранних тайников увеличьте число после «тайника @», например,
stash@{2}
для второго тайника из последнего.Причина это работает в том , что
git stash
создает слияние совершить для каждого тайника, который можно ссылаться , какstash@{0}
, иstash@{1}
т.д. первым родителем этого коммита ГОЛОВА во время притона, то второй родитель содержит изменения отслеживаемых файлы и третий (который может не существовать) изменения в неотслеживаемых файлах.Это частично объясняется на странице руководства в разделе «Обсуждение» .
источник
Чтобы увидеть все файлы в тайнике (как отслеживаемые, так и неотслеживаемые), я добавил этот псевдоним в свою конфигурацию:
Требуется единственный аргумент о том, какой тайник вы хотите просмотреть. Обратите внимание, что он по-прежнему будет представлен в двух списках подряд.
if...fi
Раздел изменяет Баш рассуждение $ 1 в 0 , если ни один не был принят.источник
Обходной путь: промежуточные файлы перед их хранением будут
git stash show -p
работать должным образом .Примечание. Этот способ дает возможность добавлять интерактивные части, вот как это сделать .
Внимание: убедитесь, что у вас нет заранее поставленной работы, иначе вы не сможете ее различить.
Это может быть полезно.
источник