我有一个这样的目录结构: ~/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 文件将保留在子目录的 .git 文件夹中。它甚至不会将文件添加到提交中。当我转到子文件夹并使用git status时,它会告诉我还有未跟踪的文件!
然后我将代码放在同一个 hooks 文件夹中的一个单独的 bash 脚本中。在终端中执行它并且它工作!为什么这行得通并且钩子文件失败了?