首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使git只在当前目录上工作?

如何使git只在当前目录上工作?
EN

Stack Overflow用户
提问于 2014-11-27 18:48:44
回答 2查看 1.8K关注 0票数 1

我已经为我的点文件创建了一个git存储库,但是当我在我的主目录中使用git init时,它似乎也在考虑将所有子目录都作为git的一部分。我已经通过git添加远程添加了存储库。问题是,bash显示了我实际上是哪一个分支,例如,在分支文件夹中的userr用户。因此,当我转到桌面(~/ Desktop )时,它仍然被认为是一个git目录,我甚至可以在那里使用git状态。但是,我想只考虑存储库的主目录。

EN

Stack Overflow用户

发布于 2014-11-28 00:50:20

(编辑:下面的第三个选项,GIT_CEILING_DIRECTORIES,可能是最好的)

备选案文1

除非明确告诉Git在哪里找到当前存储库的gitdir,否则它必须找到的唯一方法是向上搜索。真的没有其他的选择:你告诉它,或者它向上搜索。

我最接近你想要的就是插入一个无效的gitdir引用来打破那些目录中的git。

代码语言:javascript
运行
复制
echo "gitdir: this isn't part of any containing repository" > $notinthisone/.git

并告诉包含的存储库忽略它:

代码语言:javascript
运行
复制
echo $notinthisone >> .gitignore

之后

代码语言:javascript
运行
复制
$ cd $notinthisone
$ git status
fatal: Not a git repository: this isn't part of any containing repository

而来自包含存储库的git add将跳过它-如果您试图强制它,您将得到上面的错误消息。

选项2

对于实现dotfile的另一种方法,您可以配置一个存储库来使用您想要的任何工作树。所以:

代码语言:javascript
运行
复制
mv .git somewhere/out/of/the/way
cd !$
git config core.worktree $OLDPWD

echo '*'     >> .gitignore
echo '!.*'   >> .gitignore

git add .gitignore
git commit -m 'ignoring un-hidden files'

选项3

活到老,学到老。在读取Git文档时,检查所有可能隐藏的重写到.git目录,i 遇到这种情况

GIT_CEILING_DIRECTORIES 这应该是一个以冒号分隔的绝对路径列表.如果设置好了,这是git在查找存储库目录时不应该进入的目录列表。它不会排除当前工作目录或命令行或环境中设置的GIT_DIR。(用于排除缓慢加载的网络目录。)

因此,导出它,并在您的.bashrc等效做同样的,例如。

代码语言:javascript
运行
复制
export GIT_CEILING_DIRECTORIES=$HOME

而Git不会向上恢复到您的主目录中。然后在您的主目录中

代码语言:javascript
运行
复制
echo '*'   >>.gitignore
echo '!.*' >>.gitignore 

而Git将永远不会向上恢复到您的主目录的回购。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27177248

复制
相关文章

相似问题

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