相关疑难解决方法(0)

Make .gitignore会忽略除少数文件之外的所有内容

我知道.gitignore文件隐藏了Git版本控制中指定的文件.我有一个项目(LaTeX),它在运行时会生成许多额外的文件(.auth,.dvi,.pdf,日志等),但我不希望这些文件被跟踪.

我知道我可以(也许应该)这样做所有这些文件放在项目中的一个单独的子文件夹中,因为我可以忽略该文件夹.

但是,有没有可行的方法将输出文件保存在项目树的根目录中,并使用.gitignore忽略除了我用Git跟踪的文件之外的所有内容?就像是

# Ignore everything
*

# But not these files...
script.pl
template.latex
# etc...
Run Code Online (Sandbox Code Playgroud)

git gitignore

1531
推荐指数
22
解决办法
42万
查看次数

.gitignore排除文件夹但包含特定的子文件夹

我有文件夹application /我添加到.gitignore.应用程序/文件夹内是文件夹application/language/gr.我该如何包含此文件夹?我试过这个

application/
!application/language/gr/
Run Code Online (Sandbox Code Playgroud)

没有运气......

git gitignore

863
推荐指数
14
解决办法
32万
查看次数

Git忽略子文件夹

我的.Net解决方案中有很多项目.我想排除所有"bin/Debug"和"bin/Release"文件夹(及其内容),但仍然包含"bin"文件夹本身以及其中包含的任何dll.

带有"bin /"的.gitignore忽略"Debug"和"Release"文件夹,但也包含"bin"文件夹中包含的任何dll.

.gitignore文件中的"bin/Debug"或"bin/Release"不会排除目录,除非我完全将忽略模式限定为"Solution/Project/bin/Debug" - 我不想这样做需要在我的解决方案中为每个项目包含这个完整模式,并为添加的任何新项目添加它.

有什么建议?

git directory ignore gitignore

400
推荐指数
11
解决办法
36万
查看次数

我如何告诉Git忽略除子目录之外的所有内容?

我想忽略我的存储库中的所有文件,除了bin子目录中出现的文件.我尝试将以下内容添加到我的.gitignore:

*
!bin/*
Run Code Online (Sandbox Code Playgroud)

然而,这并没有产生预期的效果:我在里面创建了一个新文件bin/,但git status仍在显示nothing to commit (working directory clean).

有什么建议?

git gitignore

203
推荐指数
10
解决办法
8万
查看次数

gitignore排除规则如何实际运作?

我正在尝试解决大型目录结构上的gitignore问题,但为了简化我的问题,我已将其减少到以下内容.

我在一个全新的git存储库中有两个文件(foo,bar)的以下目录结构(到目前为止没有提交):

a/b/c/foo
a/b/c/bar
Run Code Online (Sandbox Code Playgroud)

显然,'git status -u'显示:

# Untracked files:
...
#       a/b/c/bar
#       a/b/c/foo
Run Code Online (Sandbox Code Playgroud)

我想要做的是创建一个.gitignore文件,忽略/ b/c中的所有内容但不忽略文件'foo'.

如果我创建一个.gitignore:

c/
Run Code Online (Sandbox Code Playgroud)

然后'git status -u'显示foo和bar都被忽略:

# Untracked files:
...
#       .gitignore
Run Code Online (Sandbox Code Playgroud)

这是我所期待的.

现在,如果我为foo添加排除规则,那么:

c/
!foo
Run Code Online (Sandbox Code Playgroud)

根据gitignore手册页,我希望这可行.但它没有 - 它仍然忽略了foo:

# Untracked files:
...
#       .gitignore
Run Code Online (Sandbox Code Playgroud)

这也不起作用:

c/
!a/b/c/foo
Run Code Online (Sandbox Code Playgroud)

这也不是:

c/*
!foo
Run Code Online (Sandbox Code Playgroud)

得到:

# Untracked files:
...
#       .gitignore
#       a/b/c/bar
#       a/b/c/foo
Run Code Online (Sandbox Code Playgroud)

在这种情况下,虽然不再忽略foo,但也不会忽略bar.

.gitignore中规则的顺序似乎也不重要.

这也不符合我的期望:

a/b/c/
!a/b/c/foo
Run Code Online (Sandbox Code Playgroud)

那个人忽略了foo和bar.

一种有效的方法是,如果我创建文件a/b/c/.gitignore并放入其中:

*
!foo
Run Code Online (Sandbox Code Playgroud)

但问题是最终在/ b/c下会有其他子目录,我不想在每一个中都放一个单独的.gitignore - 我希望创建'基于项目'.gitignore可以位于每个项目的顶级目录中的文件,并覆盖所有"标准"子目录结构.

这似乎也是等价的:

a/b/c/*
!a/b/c/foo
Run Code Online (Sandbox Code Playgroud)

这可能是我可以实现的最接近"工作"的东西,但需要说明完整的相对路径和明确的异常,如果我在不同级别有很多名为'foo'的文件,那将会很痛苦子目录树的.

无论如何,要么我不太明白排除规则是如何工作的,要么当目录(而不是通配符)被忽略时它们根本不起作用 - 以一个以/结尾的规则

任何人都可以对此有所了解吗?

有没有办法让gitignore使用像正则表达式那样合理的东西而不是这种笨拙的基于shell的语法? …

git gitignore

142
推荐指数
5
解决办法
7万
查看次数

如何否定模式在.gitignore中起作用?

我试图使用带有否定模式的.gitignore文件(以!开头的行),但它没有按照我期望的方式工作.

作为一个最小的例子,我有以下目录结构:

C:/gittest
 -- .gitignore
 -- aaa/
   -- bbb/
     -- file.txt
   -- ccc/
     -- otherfile.txt
Run Code Online (Sandbox Code Playgroud)

在我的gitignore文件中,我有这个:

aaa/
!aaa/ccc/
Run Code Online (Sandbox Code Playgroud)

我的理解(基于这个doc页面)是文件aaa/ccc/otherfile.txt不应该被忽略,但实际上git忽略了aaa下的所有内容.

我误解了这句话:"一个可选的前缀!否定了模式;先前模式排除的任何匹配文件将再次被包括在内."?

顺便说一下,这是在Windows上使用msysgit 1.7.0.2.

git gitignore

77
推荐指数
3
解决办法
3万
查看次数

.gitignore文件中路径的差异?

我一直在使用git,但仍然对.gitignore文件路径感到困惑.

那么,.gitignore文件中以下两个路径之间有什么区别?

tmp/*
public/documents/**/*

我可以理解,tmp/*它将忽略其中的所有文件和文件夹.我对吗?但是第二条线路的意思是什么?

gitignore

55
推荐指数
5
解决办法
3万
查看次数

Git忽略除子文件夹以外的所有内容

我搜索了其他问题,但无法为我的项目找到有效的解决方案.有一个Magento项目,我想排除除此之外的所有内容:

/app/design/frontend/default/theme_name # and obviously all subfolders
/skin/frontend/default/theme_name # and all subfolders
Run Code Online (Sandbox Code Playgroud)

我尝试了很多组合,但没有运气.目前我坚持使用这个.gitignore文件:

*
!/app/
!/app/*

app/*
!/app/design/
!/app/design/*
Run Code Online (Sandbox Code Playgroud)

但它在设计文件夹下面递归不起作用.它只在我创建的设计文件夹中添加了一个测试文件.

git magento gitignore

7
推荐指数
2
解决办法
2932
查看次数

如何使用 .gitignore 忽略目录中除一个文件之外的所有内容?

我在这里找到了几个据称可以解决此问题的解决方案,但由于某种未知的原因,它们都不适合我。

我需要忽略给定文件夹中除一个特定文件之外的所有内容。容易,对吧?没那么快。

对于这些问题,我已经尝试了几乎所有建议的答案:

...但我并没有比开始时更进一步。

这是要包含的文件的路径:

D:\Projects\Website\Website\bin\Settings.json
Run Code Online (Sandbox Code Playgroud)

回购协议位于:

D:\Projects\Website
Run Code Online (Sandbox Code Playgroud)

我的.gitignore文件是由 Visual Studio 生成的,因此它包含以下条目:

[Bb]in/
Run Code Online (Sandbox Code Playgroud)

根据上面问题的许多答案,我应该能够做这样的事情:

!/Website/[Bb]in/Settings.json
Run Code Online (Sandbox Code Playgroud)

...但这行不通。该文件仍然被忽略。

这些排列都不起作用:

!*/Settings.json
!**/Settings.json
![Bb]in/Settings.json
![Bb]in/**/Settings.json
![Ww]ebsite/[Bb]in/Settings.json
!Website/bin/Settings.json
!/Website/bin/Settings.json
Run Code Online (Sandbox Code Playgroud)

我还尝试将一个单独的.gitignore文件放入bin

# Don't block Settings.json
!Settings.json
!.gitignore
Run Code Online (Sandbox Code Playgroud)

没有运气。

如何阻止除文件[Bb]in之外的所有内容Settings.json

  • 预期结果: Website\bin\Settings.json不被忽略

  • 实际结果: Website\bin\Settings.json继续被忽略

git gitignore

1
推荐指数
2
解决办法
3471
查看次数

标签 统计

gitignore ×9

git ×8

directory ×1

ignore ×1

magento ×1