我正在撰写一份脚本,它将能够完成以下任务:
#!/bin/bash
mysqldump -u user -p database > db_file
git add db_file
git commit -m 'db_file updated by script'
但是,如果我运行这个脚本时索引是脏的呢?也就是说,如果我已经git add
了我不想在此脚本运行时自动提交的文件怎么办?我可以这样做:
#!/bin/bash
mysqldump -u user -p database > db_file
git stash
git add db_file
git commit -m 'db_file updated by script'
git stash apply
现在的问题是,如果索引和工作树是未修改的,则git stash不会将任何内容添加到stash列表中,但 git stash apply
将错误地应用顶部的存储,并丢弃该存储的历史记录。
如何根据索引是否已修改来设置bash条件?
git status --plumbing
пјҢе…¶ж„Ҹд№үдёҺ--porcelain
зӣёеҗҢпјҲ并ејғз”Ё--porcelain
дҪҶдёҚеҲ йҷӨе®ғпјүгҖӮ - Greg Hewgill