Ответ 1
Что связано с использованием переменной окружения "GIT_INDEX_FILE", чтобы сделать git использовать другой файл индекса?
Итак, для создания нового индексного файла из HEAD используйте
GIT_INDEX_FILE=.git/other-index git reset
и после него вы могли бы просто
GIT_INDEX_FILE=.git/other-index git status
для поиска изменений.
С другой стороны, вы не увидите реального статуса, если основной индекс будет изменен командами add/rm. Но, по крайней мере, это позволит вам обнаружить факт изменения, а затем, вероятно, сделать еще несколько вещей, чтобы узнать реальную разницу.
Не могли бы вы также описать больше цели, которую вы пытаетесь достичь? Вероятно, мы могли бы найти другие решения.
Другая идея. Попробуйте следующее:
cp .git/index .git/other-index # or maybe just "ln" once, rather than copying everytime?
GIT_INDEX_FILE=.git/other-index git status
Не уверен, насколько это достоверно... в случае, если команда cp
будет выполняться во время выполнения git add/rm
, у вас может быть "поврежденный" индексный файл и, по-видимому, получить сбой, но для вашего использования я считаю, достаточно хорошо - вы можете просто проигнорировать сбой и повторить попытку.