是否可以将某个文件的索引状态与其工作树内容交换?
问问题
67 次
1 回答
5
git show
您可以使用object-name将 index 中的内容获取到您希望的任何位置,其中object-name是 SHA1 或:filename
(表示来自索引的版本)或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
。
于 2011-05-18T13:19:09.207 回答