English 中文(简体)
git 忽略目录, 似乎不存在
原标题:git ignoring a directory, it s like it doesn t exist
  • 时间:2012-05-25 17:41:10
  •  标签:
  • git

我有一个克隆的回收站。有一个目录,叫做 a/b/c, 叫做 a/b/c, " 坚固 " 曾经是

现在我要在主副本中管理文件。 我不在乎 a/ b/ c 中的历史, 所以我删除了 a/ b/ c 中的. git dir 。

但问题是 git status 正在完全忽略 a/b/c。 我无法使用 git 添加 it. it as likes Id put the path into. gitignore( I haven ) 。

很明显,以前, 忽略一个有.git dir的子目录是有道理的, 但是现在它怎么知道有什么区别呢?

除了.gitignore 和.git/info/excludes 之外, 是否有其他地方可以忽略文件?. git/ config 文件中没有任何内容?

我被问及了"Git状态"怎么说 不多:

/path/to/root/dir $ git status
# On branch fred
nothing to commit (working directory clean)

加上什么,就更少了。

/path/to/root/dir $ git add a/b/c
最佳回答

我不知道问题是什么, 或问题是如何产生的(v. 烦人), 但这是我如何解决的,

git rm --cached a/b/c
git commit -m "removed phantom a/b/c dir"
git add a/b/c
git commit -m "finally able to add a/b/c"

有趣的是,git log a/b/c/c 仅列出“ 最终能够... ” 承诺 。 git 显示 HEAD @ /code > (“ 移除的幽灵... ” 承诺) 。

-Subproject commit c311ccdc91c8be66019aa138d1c4af49a6b7a81c

所以它似乎在特别地对待它。我要读更多关于次级项目和(或)子模块的内容。

问题回答

您是否有全球 gitignore 文件? (检查 git 配置核心. excluudesfiles )

似乎 Git 基本上不存在空目录。 如果目录中的所有文件都符合 < code>. gitignore 模式, 然后将目录作为空处理 。

我在有 foo.tgz 文件的目录上发生了这种情况, 在重写根端有 < code>. gitignore 文件有模式 < code@. tgz 。 令人非常沮丧的是, < code> git check-ignore 命令没有报告类似“ 注意目录对我来说是空的” 的东西 。

下次试试这个:

git check-ignore strangely-ignored-directory/*

输出会解开谜团的谜团

使用 git add -f 强制 git 添加它目前忽略的文件 。

摘要: 您的. gitignore 文件( 包括目录本身中的任何文件) 忽略目录中包含的所有文件。 如果是的话, Git 会将它作为空而不是列表 )

我也有类似的问题。 我发现被忽略的目录包含有. gitignore 文件( 虽然不是. git 目录 ) 。 在删除它时, Git 突然又对它感兴趣, 并在 < code> git status 中作为未跟踪的文件/目录列出 。

当我恢复. gitignore 的原始内容时, 我把它们从稍早时粘贴到终端 Git 中, 再次看不到或列出目录未跟踪 。

通过试验和错误,我发现我可以从.gitignore 中删除以下条目,但 除外:

.factorypath
.springBeans

如果 两者的 都在. gitignore 文件中, 则 Git 看不到包含目录( 后者不是 git 仓库的根) 。

这比回答我的问题还多。

这是目录列表, 但我看不到一个模式 。

total 72
drwxr-xr-x@ 10 stephen  staff    320 30 Aug 19:04 .
drwxr-xr-x  17 stephen  staff    544 30 Aug 18:59 ..
drwxr-xr-x   2 stephen  staff     64 25 Jun 15:00 .apt_generated
-rw-r--r--   1 stephen  staff   1341 25 Jun 15:00 .classpath
-rw-r--r--   1 stephen  staff  18665 28 Jun 10:44 .factorypath
-rw-r--r--@  1 stephen  staff     25 30 Aug 19:12 .gitignore
-rw-r--r--   1 stephen  staff   1094 28 Jun 10:44 .project
drwxr-xr-x   7 stephen  staff    224 25 Jun 15:00 .settings
-rw-r--r--   1 stephen  staff    479 28 Jun 15:43 .springBeans
drwxr-xr-x   6 stephen  staff    192  2 Jul 12:41 target

我刚才出现这个问题,是因为我用了 create- react-app 来在由 git 控制的顶级文件夹 todo 中启动 client 应用程序:

cd todo
npx create-react-app client --template typescript

在引擎盖下创建了一个文件夹 client , 它有一个 < code>. git 目录和一个 .gitignore 文件。 它就像一个 git 子项目 。

当我通过 git add -i 添加项目到源控制时,创建了一个奇怪的空目录指针,但没有内容。

我用过命令

git rm --cached client

... 清除了 Git 存储的奇怪的空目录/ 指针 。 但是当我试图添加文件夹时, 我得到了这个信息 :

~/depot/todo $ git add client
warning: adding embedded git repository: client
hint: You ve added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint: 
hint:   git submodule add <url> client
hint: 
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint: 
hint:   git rm --cached client
hint: 
hint: See "git help submodule" for more information.

为了解决这个问题,我移除了古物 从那时起,我就可以像正常人一样承诺

rm -Rf client/.git
rm -f client/.gitignore
git add client
git commit -m "Add missing client content"

我有一个问题 我的目录没有出现在SpointTree上

/home/projects/myproject         <- This is my git repository
/home/projects/myproject/my-dir  <- This directory doesn t show up on SourceTree

结果发现,这个目录本身是另一个 git 仓库。 (在另一个 repo 中进行回购)。

/home/projects/myproject
/home/projects/myproject/.git         <- Main ".git" directory
/home/projects/myproject/my-dir
/home/projects/myproject/my-dir/.git  <- Delete this ".git" directory

当我删除我的目录中的.git目录时,SourceTree能够看到我的目录,我可以正常地站立和作出承诺。





相关问题
git confusion - cloning a repo is returning a past version

Im having some confusion with my git usage. I cloned a repo from one comp to the other, and the new clone is the state of the original that was active some time ago. So its cloning a past version. ...

Appropriate strategy for tagging and hotfixing with git

I was wondering if the strategy I m using for tagging and hotfixing tags (which then I use for deploying rails applications) with git is appropriate. For tagging I just tag a commit of the master ...

Tips on upgrading CVS to git/hg?

We still use CVS, I use git and hg for my personal use though I m still a novice at both, but I realize they re much more modern and better, faster, distributed, etc. It s just everyone is so ...

Using Git in a TFS shop

Using Git at home has spoiled me - I now find using TFS at work to be a bit of a drag and want to explore the possibility of using Git locally and syncing somehow with TFS. I figure there are a few ...