git从存储库的子目录中限制“添加”和“提交”

时间:2015-12-13 17:00:00

标签: git

如果你不在git资源库的根目录(.git所在的位置),有没有办法限制git addcommit

我问,因为我的$HOME目录受git控制,有时我偶尔会添加和提交一些内容。当我忘记创建新的回购时会发生这种情况。

这是我想要的简短描述:

mkdir /tmp/git_test && cd /tmp/git_test && touch t1 t2 t3
git init && git add -A && git commit -m "INIT" 
touch t4 t5 t6 # create new files
mkdir /tmp/git_test/git_test2 && cd /tmp/git_test/git_test2
git add -A # on this step it should not allow me to add files t4 t5 and t6 because I'm in subdirectory

在最后一步,我想得到一些是/否对话,或者只是错误。但实际上它允许添加文件。

(/tmp/git_test/git_test2)$ git status -sb
## master
A  ../t4
A  ../t5
A  ../t6

1 个答案:

答案 0 :(得分:3)

Git总是走向父目录,寻找它找到的第一个for,所以没有内置的方法来做到这一点。

但是,您可以添加pre-commit hook来检查当前目录中的.git/,如果不存在,则暂停提交。

即使您不小心将文件暂存或提交到您不想要的存储库,也可以使用git reset撤消它。