[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 For , 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