每当我尝试使用Hooks时,Git就会崩溃

时间:2013-08-03 08:16:33

标签: git bash

我有一个像这样的目录结构:〜/ main / sub。在主文件夹中,我有一个git存储库。它忽略了子目录(主目录中有更多内容。)我需要这两个来自两个不同的起源,所以我在子目录中添加了一个新的git repo。但我需要在同一时间提交和推送它们。因此,我将以下代码添加到主目录repo中的 commit-msg 挂钩。

echo "Commiting Content"

now=$(date +"%c")
cd sub
git add --all .
git commit -a -m "$now Update"

echo "Commiting Content complete!"

但每次运行提交时,此代码都会执行,但会崩溃。 index.lock文件将保留在 sub 目录的.git文件夹中。它甚至不会将文件添加到提交中。当我转到子文件夹并使用 git status 时,它会告诉我还有未跟踪的文件!

然后我将代码放在同一个hooks文件夹中的单独bash脚本中。在终端执行它,它工作了!为什么这样做和钩子文件失败?

1 个答案:

答案 0 :(得分:0)

钩子运行在git存储库的根目录中。如果main是根目录,则只需cd sub代替cd main/sub

您使用git submodules吗?它可能适用于您的情况;它不会同时提交两个repos,但如果submain的子模块,则可以先提交sub,然后将此提交添加为main的更改,承诺。这样,其他人就可以使用您提交给main的最新main修订版本sub查看。