如果你不在git资源库的根目录(.git所在的位置),有没有办法限制git add
和commit
?
我问,因为我的$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
答案 0 :(得分:3)
Git总是走向父目录,寻找它找到的第一个for
,所以没有内置的方法来做到这一点。
但是,您可以添加pre-commit hook来检查当前目录中的.git/
,如果不存在,则暂停提交。
即使您不小心将文件暂存或提交到您不想要的存储库,也可以使用git reset
撤消它。