将新创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和提交。 请注意,您可能需要之后向文件添加注释。