Как поменять содержимое файла в рабочем каталоге на содержимое ранее подготовленной версии этого файла? - PullRequest
3 голосов
/ 18 мая 2011

Можно ли обменять индексное состояние определенного файла на содержимое его рабочего дерева?

1 Ответ

5 голосов
/ 18 мая 2011

Вы можете получить содержимое из индекса в любое место, используя git show имя-объекта , где имя-объекта - это SHA1 или :filename (это означает, что версия изindex) или revision:filename (это означает версию из данной ревизии).Так что либо:

git show :filename > filename.tmp
git add filename
mv filename.tmp filename

, либо

OBJECT=$(git rev-parse :filename)
git add filename
git show $OBJECT > filename

Первый сохраняет данные на диск перед изменением индекса, а второй просто запрашивает у индекса имя объекта, которое он имел, изменяет его и затемполучает объект из хранилища объектов.В то время ничто больше не относится к объекту, но оно не будет удалено, пока вы не запустите git gc.

...