[description]

As soon as you have some tree objects, you can always read them and set the index exactly to their content! Unsurprisingly, the command is called

    git read-tree <tree>

For <tree>, you can provide the hash of any tree object - you can right-click one to insert its hash into the terminal!

Try reading some of the trees in this repository into the index!

[setup]

EMPTY_TREE=$(git write-tree)

echo "file 1" > file1
echo "file 2" > file2
git add .
git write-tree

rm *
echo "file A" > fileA
echo "file B" > fileB
echo "file C" > fileC
git add .
TRIPLE_TREE=$(git write-tree)

git read-tree "$EMPTY_TREE"

[setup goal]

EMPTY_TREE=$(git write-tree)

echo "file 1" > file1
echo "file 2" > file2
git add .
git write-tree

rm *
echo "file A" > fileA
echo "file B" > fileB
echo "file C" > fileC
git add .
TRIPLE_TREE=$(git write-tree)

git read-tree "$EMPTY_TREE"

git read-tree "$TRIPLE_TREE"

[win]

test "$(git ls-files | wc -l)" -gt 0
