首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当暂存为空时强制git提交,但预提交钩子将添加文件。

当暂存为空时强制git提交,但预提交钩子将添加文件。
EN

Stack Overflow用户
提问于 2013-07-29 02:56:11
回答 1查看 578关注 0票数 1

有点卷曲,我一直找不到答案。我有一个git预提交钩子,mysqldumps转储数据库,并分阶段提交文件。

我正在为一个项目运行Drupal,因此,相当多的配置是通过接口完成的,并存储在数据库中,显然,我很想捕捉版本控制中的时间里程碑。

下面是我正在尝试的基本的简化测试:

代码语言:javascript
复制
#!/bin/bash

#commit database as point-in-time
SITE_PATH="/data/site.com"
cd $SITE_PATH

FILE_NAME="db/site.sql"
$(mysqldump --skip-extended-insert --skip-dump-date db_name > $FILE_NAME)

#add changed file to commit
$(git add $FILE_NAME)

问题是,如果没有要分阶段的文件,则预提交脚本将运行,但提交未完成。如果之后运行echo $?git commit将返回1的退出代码(因为在暂存过程中最初没有文件)。运行git status显示,现在数据库转储已经准备好进行提交了。

如果在运行提交之前有任何其他文件添加到暂存中,则提交可以工作。

显然,我可以轻松地编写一个包装器来完成我想做的事情,然后在所有事情都提前完成之后调用git commit,但是有谁能说明一下这种情况下的最佳实践吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-29 03:20:22

代码语言:javascript
复制
git commit --allow-empty

这将阻止git中止未更改以前提交的任何文件的提交。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17915397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档