我在代码库中有一个现有的Visual Studio项目。最近我在项目下添加了一个.gitignore文件,我认为这个文件告诉Git忽略在文件中列出的文件。
我的问题是,所有这些文件都已经被跟踪,据我所知,Git不会忽略在规则添加到文件中之前已经被跟踪的文件。
建议使用:git rm --cached
并手动取消跟踪它们,但是逐个处理这些文件将耗费我很长时间。
我考虑过删除代码库并重新创建一个含有.gitignore文件的代码库,但一定有更好的方法来解决这个问题。
我在代码库中有一个现有的Visual Studio项目。最近我在项目下添加了一个.gitignore文件,我认为这个文件告诉Git忽略在文件中列出的文件。
我的问题是,所有这些文件都已经被跟踪,据我所知,Git不会忽略在规则添加到文件中之前已经被跟踪的文件。
建议使用:git rm --cached
并手动取消跟踪它们,但是逐个处理这些文件将耗费我很长时间。
我考虑过删除代码库并重新创建一个含有.gitignore文件的代码库,但一定有更好的方法来解决这个问题。
这个答案解决了我的问题:
首先,提交所有待定的更改。
然后运行此命令:
git rm -r --cached .
这将从索引中删除所有内容,然后只需运行:
git add .
提交它:
git commit -m ".gitignore is now working"
请注意,当您将此推送到存储库并从其他地方拉取到仍在跟踪这些文件的状态时,文件将被删除。git push origin
命令以将更改更新到远程代码库中。 - Sanket Berde.gitignore
现在可用”的信息。 :) - ihavenoidea创建一个 .gitignore 文件,方法是新建一个空的 .txt 文件即可。
然后在命令提示符中输入以下命令(其中 git.txt
是你刚刚创建的文件名)来更改它的名称:
rename git.txt .gitignore
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
#Project files
[Bb]uild/
#Subversion files
.svn
# Office Temp Files
~$*
GitHub提供了一个有用的.gitignore文件集合。
获得该文件后,您需要像添加其他文件一样将其添加到git存储库中,只不过它必须位于存储库的根目录中。
然后在终端中输入以下命令:
git config --global core.excludesfile ~/.gitignore_global
来自官方文档:
您还可以创建全局.gitignore文件,它是每个Git存储库中忽略文件规则的列表。例如,您可以在~/.gitignore_global处创建此文件并添加一些规则。
打开终端。在终端中运行以下命令:git config --global core.excludesfile ~/.gitignore_global
如果存储库已经存在,则必须运行这些命令:
git rm -r --cached .
git add .
git commit -m ".gitignore is now working"
如果步骤2不奏效,那么你应该写下你想添加的文件的完整路径。.gitignore
文件太晚,Git 会继续跟踪已经提交的文件。要解决这个问题,你可以删除所有不想要的文件的缓存实例。git ls-tree --name-only --full-tree -r HEAD
假设你在像 cache/
这样的目录中找到了不想要的文件,那么最好只针对该目录而不是所有文件。git rm -r --cached .
最好只针对不需要的文件或目录:
git rm -r --cached cache/
然后进行所有更改,
git add .
并提交...
git commit -m ".gitignore is now working"
参考:https://amyetheredge.com/code/13.html
git commit
后,您可以看到受影响的文件,然后将它们从仓库中删除。完美! - Coffee and Code正如这里所指定的,您可以更新索引:
git update-index --assume-unchanged /path/to/file
这样做会使文件在 git status
或 git diff
中不再显示。
要重新开始跟踪这些文件,您可以运行:
git update-index --no-assume-unchanged /path/to/file
(GIT_INDEX_FILE=some-non-existent-file \
git ls-files --exclude-standard --others --directory --ignored -z) |
xargs -0 git rm --cached -r --ignore-unmatch --
使用 git clean
运行时获取帮助
git clean -h
git clean -xn
删除 gitignore 的垃圾文件
git clean -xdf
注意:您可能会忽略本地配置文件,例如database.yml,这些文件也将被删除。请自行承担风险。
然后
git add .
git commit -m ".gitignore is now working"
git push
我认为这是向现有存储库添加 .gitignore 文件的简单方法。
先决条件:
您需要浏览器来访问您的 Github 帐户。
步骤
玩得开心!