This has been asked and answered recently at least twice, I think. https://lore.kernel.org/git/01020169a7ad6af3-ad50e2d1-19fb-46eb-b397-759f8d579e8b-000000@xxxxxxxxxxxxxxxxxxxxxxx/ https://lore.kernel.org/git/CADZUK1cjvifbFYk9w6+vE95jgEBuwjoOi_1QfZHoPFBXuXHCCg@xxxxxxxxxxxxxx/ I think these previous ones wanted something more relevant to "git stash", in the sense that they wanted to be able to git stash do some other things do many other things if earlier "git stash" produced an entry git stash pop and the answer to that may be "use stash create upfront, save it away yourself in a variable or something, then use that to restore" But to me your use case does not look like it has much to "git stash". If a user wants to ask "is my working tree and the index dirty (iow, have I made any changes)?", wouldn't "git status" be the right tool for the job? It even has an option to produce output designed to be machine readable.