如何在Windows上使用msysgit忽略Git中的目录或文件夹?
当前回答
若要忽略整个目录,请在其中放置.gitignore的“*”。
例如
示例系统
/root/
.gitignore
/dirA/
someFile1.txt
someFile2.txt
/dirB/
.gitignore
someFile3.txt
someFile4.txt
Goal
忽略dirB的内容/
顶级(/root/.gitignore)
你可以在这里“dirB/”
忽略的目录(/root/dirB/.gitignore)
或者你可以在这里“*”
Git在文件系统的每一步都监视gitignore。所以这里我选择dirB/.gitignore作为“*”来忽略dirB/,包括其中的所有文件和子磁盘。
多恩☺️
其他回答
这对一些人来说可能非常明显,但我确实从其他答案中理解了这一点。
在目录中创建.gitignore文件本身没有任何作用。您必须将.gitignore作为文本文件打开,并将希望它忽略的文件/目录写在各自的行上。
所以cd到Git存储库目录
touch .gitignore
nano .gitignore
然后写下要忽略的文件和/或目录的名称及其扩展名(如果相关)。
此外,.gitignore在某些操作系统(例如Mac)上是一个隐藏文件,因此您需要ls-a来查看它,而不仅仅是ls。
似乎忽略文件和目录有两种主要方式:
.git忽略将.gitignore文件放置到存储库的根目录中,而不是.git文件夹(在Windows中,确保看到真正的文件扩展名,然后使.gitignore.(结尾处的点为空文件扩展名))生成全局配置~/.gitignore_global并运行git-config--global-core.excludsfile~/.gigignore_global将其添加到git配置中注意:以前跟踪的文件可以通过运行gitrm--缓存文件名来取消跟踪存储库排除-对于不需要共享的本地文件,只需将文件模式或目录添加到文件.git/info/exclude中即可。这些规则未提交,因此其他用户看不到。这里有更多信息。
要在忽略文件列表中设置例外,请参阅此问题。
暂时忽略已在git中的目录/文件:
我在一个多项目等级的项目中有很多项目,它们可能需要很长时间才能删除,它们几乎相同但不同。有时我想通过将它们全部删除来将它们从渐变构建中删除。吉特终究能把它们弄回来。然而,我也不希望他们以git状态出现。因此,我使用以下简单程序:;
删除我不想要的文件和文件夹。验证生成仍然有效告诉git暂时忽略已删除的文件(我们可以找回它们)
gitls文件--已删除-z | git更新索引--假定-z不变--标准输入
在你想要他们回来之前,不要带着他们过日子。然后,运行与之前相同的命令,但切换为“假设不变”或“不假设不变”
git ls文件--已删除-z | git更新索引--不假定未更改-z--标准输入
我认为问题是你的工作树是这样的:
a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore
…用你描述的.gitignore。这将为您提供git状态输出,如:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# a-cache/
# b-cache/
…如果index.html文件尚未添加到存储库中。(Git发现缓存目录中有未忽略的文件,但它只报告目录。)要解决此问题,请确保您已添加并提交了index.html文件:
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
…然后您的git状态将如下所示:
$ git status
# On branch master
# 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)
(很明显,你也希望提交.gitignore。我只是懒得处理这个测试用例。)
若要忽略整个目录,请在其中放置.gitignore的“*”。
例如
示例系统
/root/
.gitignore
/dirA/
someFile1.txt
someFile2.txt
/dirB/
.gitignore
someFile3.txt
someFile4.txt
Goal
忽略dirB的内容/
顶级(/root/.gitignore)
你可以在这里“dirB/”
忽略的目录(/root/dirB/.gitignore)
或者你可以在这里“*”
Git在文件系统的每一步都监视gitignore。所以这里我选择dirB/.gitignore作为“*”来忽略dirB/,包括其中的所有文件和子磁盘。
多恩☺️
推荐文章
- 如何在命令提示符中使用空格?
- Visual Studio代码如何解决合并冲突与git?
- 无法推送到远程分支,无法解析到分支
- 在Python中如何在Linux和Windows中使用“/”(目录分隔符)?
- 命令行从操作系统级配置中删除环境变量
- Git:如何将数据库重置为特定的提交?
- 如何在合并期间使用Git和命令行保存本地文件或远程文件?
- 能够用一个命令推到所有git遥控器?
- 重新基于Git合并提交
- 忽略已经签入目录的内容?
- 如何从windows cmd保存git提交消息?
- (Mac) -bash: __git_ps1:命令未找到
- 在特定的文件夹中打开Cygwin
- 如何删除多个已删除的文件在Git仓库
- 使用vimdiff查看所有' git diff '