Hello, I want to write commits to a branch without touching the index or having a checkout (for a git subcommand I'm writing). I can create new blobs and trees but can't figure out how to commit a new tree/blob _with_ the old tree. Currently, I do something a lot like: objsha=$(echo 'contents' | git hash-object -w --stdin) objtreesha=$(printf "100644 blob $objsha\tfile.txt\000" | git mktree -z) newtreesha=$(printf "040000 tree $objtreesha\ttreefileisin\000" | git mktree -z) echo 'commit msg' | git commit-tree $newtreesha -p $(git rev-parse refs/heads/new) I get a commit with treefileisin/file.txt. I haven't included the other trees/files so they are gone in this commit. How do I include them? Is commit-tree the wrong tool? Is there some way to use git ls-tree that I don't know about? Gavin -- Gavin Beatty SEMPER UBI SUB UBI -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html