【发布时间】:2012-02-28 12:26:39
【问题描述】:
我正在编写一个脚本来执行此操作:
#!/bin/bash
mysqldump -u user -p database > db_file
git add db_file
git commit -m 'db_file updated by script'
但是,如果我运行这个脚本时索引脏了怎么办?也就是说,如果我已经git added 文件,我不想在此脚本运行时自动提交,该怎么办?我可以这样做:
#!/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 不会向存储列表添加任何内容,但 git stash apply 将错误地应用顶部的任何内容存储并丢弃该存储的历史记录。
如何根据索引是否脏来设置 bash 条件?
【问题讨论】: