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

时间:2013-10-18 19:08:01

标签: 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是一个添加的文件。我尝试过提交.gitignore文件。依然没有。我错过了一些明显的东西,不是吗?

更新

我也试过这些:

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

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

# Ignore everything in this directory
*
*/.htaccess

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

4 个答案:

答案 0 :(得分:9)

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

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 status显示

.gitignore
www/.htaccess

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

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

答案 1 :(得分:2)

根据我自己的经验,以下解决方案比接受的答案简单得多。

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

www/*
!www/.htaccess

现在你完成了!

解释

将其分解www/*会忽略" www"的所有占用者。目录,但不是目录本身,因为/www命令会。

接下来,我们会在您的问题中尝试声明我们的明确例外!www/.htaccess

.gitignore文件只需要两行,就像魅力一样。

答案 2 :(得分:1)

你试过了吗?

*/.htaccess
!www/.htaccess

答案 3 :(得分:0)

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

/.htaccess