Git没有';t跟踪文件夹
我试图用git跟踪我的点文件和配置文件夹。 我将我的Git没有';t跟踪文件夹,git,github,gitignore,Git,Github,Gitignore,我试图用git跟踪我的点文件和配置文件夹。 我将我的.gitignore设置为忽略所有(*),但要跟踪的文件和文件夹除外: ### Gitignore # ignore all ** !**/ # but... # files !.vimrc !.Xdefault !.bashrc !.profile !.xsession !.gitignore # folders !.vim/** !.config/i3/** !.config/ranger/** 但是,这仅适用于文件,不适用于文件夹。 如
.gitignore
设置为忽略所有(*),但要跟踪的文件和文件夹除外:
### Gitignore
# ignore all
**
!**/
# but...
# files
!.vimrc
!.Xdefault
!.bashrc
!.profile
!.xsession
!.gitignore
# folders
!.vim/**
!.config/i3/**
!.config/ranger/**
但是,这仅适用于文件,不适用于文件夹。
如果我尝试手动添加文件夹(例如,
git add.config/i3
),我会发现,您的.gitignore文件会忽略以下路径:.config/i3使用-f如果您确实要添加它们
如果您忽略所有:***
,则需要在排除文件之前将文件夹列为白名单(因为如果忽略文件夹,则不会检查其内容以排除)
因此:
然后,您可以添加文件排除:
# but
# files (eg)
!.Xdefaults
!.vimrc
# etc
# folders (eg)
!./.vim/**
!./.config/ranger/**
!./.config/i3/**
使用
git Check ignore-v--a/file
检查这些规则是否适用。我添加了**
和!**/
。现在git status
显示未跟踪的文件,以及其他通用下载/,但不显示我想要跟踪的文件夹…我不知道为什么会这样做。@upgrd如果你认为下载/afile正在升级或者,使用git check ignore-v--Downloads/afile
(assuling Downloads/不是空文件夹,因为git无论如何都会忽略空文件夹)下载/文件夹不会被忽略,这是奇怪的(鉴于上述.gitignore)。您提出的git check ignore-v
命令有趣地显示,.vim/**
被忽略,因为它与**
模式匹配。不知何故,否定砰的一声(!/.vim/**
)显然没有效果。@upgrd我刚刚测试过它:git check ignore-v--.vim/a
返回:.gitignore:3:!.vim/**.vim/a
:它正常工作了。@upgrd你能用你的.gitignore
的确切内容编辑你的问题吗?旁注:git从不跟踪文件夹/目录,它只有跟踪和未跟踪的文件目录是Git在需要时创建的烦人的东西,以便将文件粘贴到其中,即,如果文件a/b/c/d
被跟踪,Git将mkdir a;mkdir a/b;mkdir a/b/c
如果需要写入a/b/c/d
。出于性能原因,Git可以忽略它的意思是“不费心阅读”-整个目录。你的.gitignore
在我看来是正确的!@torek是的,它看起来不错:它是我的。我在下面的评论中提到了没有跟踪的文件夹。
# but
# files (eg)
!.Xdefaults
!.vimrc
# etc
# folders (eg)
!./.vim/**
!./.config/ranger/**
!./.config/i3/**