Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使.gitignore不忽略顶级目录中的.htaccess文件_Git_.htaccess_Commit - Fatal编程技术网

使.gitignore不忽略顶级目录中的.htaccess文件

使.gitignore不忽略顶级目录中的.htaccess文件,git,.htaccess,commit,Git,.htaccess,Commit,我试图忽略www目录中除.htaccess文件以外的所有文件 我有这个: # Ignore everything in this directory * # Except this file !.gitignore !/www/.htaccess 我也试过: # Ignore everything in this directory * # Except this file !.gitignore !www/.htaccess 当我运行git status时,我不认为.htaccess是一个

我试图忽略www目录中除.htaccess文件以外的所有文件

我有这个:

# Ignore everything in this directory
*
# Except this file
!.gitignore
!/www/.htaccess
我也试过:

# Ignore everything in this directory
*
# Except this file
!.gitignore
!www/.htaccess
当我运行
git status
时,我不认为.htaccess是一个添加的文件。我已尝试提交.gitignore文件。还是没什么。我错过了一些明显的东西,不是吗

更新

www/*
!www/.htaccess
我也试过这些方法:

# Ignore everything in this directory
*
*/\.htaccess

# Except these files
!.gitignore
!www/\.htaccess

您是否尝试过:

*/.htaccess
!www/.htaccess

我在我的机器上尝试了一些示例步骤,尝试它们并检查它们是否适用于您

cd ~/Desktop/test
mkdir www && touch .gitignore www/.gitkeep www/.htaccess www/file1 www/file2
git init && git add www/.gitkeep && git commit -m "gitkeep to make www trackable"
现在,执行
git status
将向您显示

.gitignore
www/.htaccess
www/file1
www/file2
现在,在.gitignore文件中,添加以下两个条目

www/*
!www/.htaccess
执行
git状态
现在显示

.gitignore
www/.htaccess
您现在可以使用
git add.
添加这两个文件并提交它们


此外,一旦您确信上述命令有效,您就可以删除我在示例中生成的
www/.gitceep
(它被添加为保持
www
可跟踪,git不支持版本文件夹)并添加
www/.htaccess
,以减少冗余文件的开销。

根据我自己的经验,下面的解决方案比公认的答案简单得多

将以下内容添加到.gitignore文件中

www/*
!www/.htaccess
现在你完成了

解释

要分解它,
www/*
会忽略“www”目录的所有占用者,但不会像
/www
命令那样忽略目录本身

接下来,我们声明显式异常
!www/.htaccess
正如您在问题中尝试的那样


它在.gitignore文件中只需要两行,工作起来就像一个符咒。

如果您在项目的主文件夹中:

/.htaccess

我试过了。已提交。gitignore仍然看不见。htaccess即将上线,这就是问题所在<代码>www和
!www/.htaccess
意味着Git被告知忽略整个文件夹“www”,因此即使您允许,它也不会看到.htaccess文件。通过将第一条语句更改为
www/*
(意思是“跟踪文件夹www本身,但不跟踪其中的任何文件”),它允许第二条语句(
!www/.htaccess
)查找htaccess文件。要做到这一点,我必须做与git add www相当的操作来开始跟踪文件夹,然后我看到htaccess显示在staging中(没有其他文件,正如我所希望的那样)。