Что связано с использованием переменной окружения «GIT_INDEX_FILE», чтобы заставить git использовать другой файл индекса?
Итак, чтобы создать новый индексный файл из HEAD, используйте
GIT_INDEX_FILE=.git/other-index git reset
и после этого вы могли бы просто
GIT_INDEX_FILE=.git/other-index git status
искать изменения.
Недостатком этого, вы не увидите реального статуса, если основной индекс будет изменен добавлением / 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
, вы можете иметь «поврежденный» индексный файл и, по-видимому, получить неудача, но для вашего использования я считаю, что это достаточно хорошо - вы можете просто проигнорировать сбой и повторить попытку.