将新创build的特定文件夹添加到Git中的.gitignore中

我有一个干净的工作目录,并从昨天晚上从Git回购克隆。 但现在我的本地服务器创build并包含一个我想忽略的统计文件夹。

我似乎无法让Git在运行git状态时忽略此文件夹。

On branch master Your branch is ahead of 'origin/master' by 1 commit. Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: app_public/views/pages/privacy.php new file: app_public/views/pages/terms.php new file: public_html/stats/ctry_usage_200908.png new file: public_html/stats/daily_usage_200908.png new file: public_html/stats/dns_cache.db new file: public_html/stats/hourly_usage_200908.png new file: public_html/stats/index.html new file: public_html/stats/usage.png new file: public_html/stats/usage_200908.html new file: public_html/stats/webalizer.current new file: public_html/stats/webalizer.hist Changed but not updated: modified: .gitignore 

我在.gitignore中添加了一些不同的行,但仍然试图添加它们:

 public_html/stats public_html/stats/** public_html/stats/**/* public_html/stats/* 

试试/public_html/stats/*

但是由于git status的文件报告为提交 ,这意味着您已经手动添加它们。 当然,在这种情况下,忽略这个事情有点太晚了。 你可以把git rm --cache起来(IIRC)。

为此有两种情况

案例1:文件已经添加到git仓库。

情况2:使用时新创build的文件及其状态仍显示为未跟踪的文件

 git status 

如果你有情况1:

第1步:然后运行

 git rm --cached filename 

将其从git回购caching中删除

如果它是一个目录,然后使用

 git rm -r --cached directory_name 

第2步:

如果情况1结束,然后做下面的事情

在你的git .gitignore中创build一个名为.gitignore新文件

*第3步:*使用以下告诉git忽略/假定文件不变

 git update-index --assume-unchanged path/to/file.txt 

步骤4:

现在,使用git状态检查状态

在您的编辑器中打开.gitignore

纳米,vim,geany等…任何一个

添加要忽略的文件/文件夹的path。

如果是文件夹,那么用户folder_name/*忽略所有文件。

如果你仍然不明白读git忽略文件链接的文章 。

从“git help ignore”我们可以学到:

如果模式以斜线结尾,则为了以下描述的目的将其移除,但是它只能find与目录匹配的内容。 换句话说,foo /会匹配一个目录foo和它下面的path,但是不会匹配一个普通的文件或符号链接foo(这与pathspec在git中的工作方式是一致的)。

所以你需要的是

的public_html /统计/

它是/public_html/stats/*

 $ ~/myrepo> ls public_html/stats/ bar baz foo $ ~/myrepo> cat .gitignore public_html/stats/* $ ~/myrepo> git status # On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # .gitignore nothing added to commit but untracked files present (use "git add" to track) $ ~/myrepo> 

我非常懒惰。 我只是search希望find这个问题的捷径,但没有得到答案,所以我敲了这个。

〜/斌/ IGNORE_ALL

 #!/bin/bash # Usage: IGNORE_ALL <commit message> git status --porcelain | grep '^??' | cut -f2 -d' ' >> .gitignore git commit -m "$*" .gitignore 

EG:IGNORE_ALL添加了stat忽略

这将只是追加所有的忽略文件到您的.gitignore和提交。 请注意,您可能需要之后向文件添加注释。