Sebastian Schuberth <sschube...@gmail.com> writes: > Hi, > > I'd like to check whether my working tree exactly matches the tree of a given > commit. That is, there should not be any untracked, staged or modified files > (including ignored files). > > Currently, I'm doing this in two steps: > > - check for success and empty output of "git status --ignored --porcelain" > - check that the output of "git rev-parse HEAD" matches the given commit > > While this works, it feels sub-optimal. Is there a better / smarter way?
I do not think so; you want three things to match and you have a way to compare two things at a time. By the way, I think your second check should compare rev-parse HEAD^{tree} $that_commit^{tree} as you are checking if the tree exactly matches.