问题标签 [gitignore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
25491 浏览

git - 有没有办法告诉 git-status 忽略 .gitignore 文件的影响?

我已经配置了许多.gitignore文件,以从一组大约 6,000 个未跟踪文件中过滤掉许多不同的不需要的文件。git add .当我的过滤列表看起来像我想要的那样时,我想做。

但是,然后我想.gitignore暂时禁用过滤器以查看留下了什么,并确保没有任何重要的意外过滤。

我知道这git-clean包括忽略的选项.gitignore files。有类似的选项git-status吗?

我可以检查并删除所有.gitignore文件,进行检查,然后恢复它们,但似乎应该有更简单的方法?

0 投票
5 回答
82235 浏览

git - .gitignore 排除规则如何实际工作?

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

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

显然,“git status -u”显示:

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

如果我这样创建一个 .gitignore :

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

正如我所料。

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

根据 gitignore 手册页,我希望这可以工作。但它没有 - 它仍然忽略 foo:

这也不起作用:

这也不是:

给出:

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

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

这也不符合我的预期:

那个忽略了 foo 和 bar。

一种可行的情况是,如果我创建文件 a/b/c/.gitignore 并放入其中:

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

这似乎也是等价的:

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

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

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

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

我在 Cygwin/bash3 上使用 git-1.6.6.1 和在 Ubuntu/bash3 上使用 git-1.7.1 并观察它。

0 投票
2 回答
621 浏览

git - 保护文件免受 Git 攻击

我正在使用 Git 和 WindRiver 来管理我的一个项目。代码正在被管理,但项目文件(例如 .cproject、.project、.wrmakefile 和 .wrproject)不是。但是,当我切换分支时,Git 会删除这些文件,尽管它们位于 .gitignore 中,从而消除了我编译代码的能力,而无需恢复提交或保留备份。

那么,有没有办法对 Git 说——忽略这些文件,无论如何都不要碰它们?

0 投票
3 回答
6371 浏览

iphone - iPhone (Xcode) 项目的 .gitignore 的“标准”内容是什么?

iPhone (Xcode) 项目的 .gitignore 文件的“标准”内容是什么?

PS:不确定这是否需要是CW。

0 投票
3 回答
1298 浏览

git - 使用 Git 管理框架,在第一次拉取后忽略对给定文件的更改

我正在使用 git 来管理扩展的 CodeIgniter 框架。它是当前 CI 版本的克隆,带有额外的帮助程序、库等。

我有很多网站都使用这个框架,如果我在一个网站中添加新的帮助方法或修复错误,我希望能够轻松更新所有其他网站,而不会覆盖它们的任何自定义文件。

我希望实现以下工作流程

  1. 创建一个新的站点目录git init来初始化一个空白的本地 git repo
  2. 将其与远程框架 repo 链接git remote add origin git@github.com:username/framework_repo
  3. 拉取远程框架的新副本git pull origin master
  4. 对站点文件进行更改并将它们提交回远程仓库git push origin master
  5. 将这些更改下拉到其他站点
  6. 重复步骤 4 和 5

没关系,但是:

  • 像 config.php 和 database.php 这样的文件不应该被提交回远程仓库,因为它们对于每个站点都是唯一的。
  • 但是,我希望它们存在于远程存储库中,因此在第一次拉取请求时,默认文件将下载到我的本地目录。
  • 此外,如果我从远程仓库再次拉取以更新框架,我不希望这些文件被覆盖

实现这一目标的最佳方法是什么?一些 .gitignore 巫毒?我已经使用 .gitignore 来忽略文件,但在这种情况下,它略有不同,因为我只想在第一个请求时提取文件。

我希望这是有道理的。

0 投票
11 回答
119325 浏览

git - git忽略异常

我有一个 gitignore 文件,它使 git 忽略*.dll文件,这实际上是我想要的行为。但是,如果我想要一个例外(即能够提交foo.dll),我该如何实现呢?

0 投票
2 回答
1033 浏览

ruby-on-rails - Github 和 .gitignore 中的非忽略文件

我的 .gitignore 文件中有一个需要编辑的文件。

我编辑了 .gitignore,提交了它,但我的文件仍然无法提交。

我删除了文件,重新读取它,一旦它具有相同的名称,它仍然无法提交。

我尝试了 -f,然后将一个空版本的文件添加到我的存储库中。最糟糕的是,如果我进行部署,此时它会破坏我的整个应用程序。

更新:

我要添加的文件是:

我的 .gitignore 文件说:

Git状态揭示了这一点:

ckcustom.js 是 ckeditor 套件的编译文件,由其他更改进行。但我不能只编辑那个文件,我必须编辑它的内部工作。

0 投票
5 回答
4369 浏览

ruby-on-rails - 如何在不泄露应用程序密钥和凭据的情况下开源我的 Rails 应用程序

我在 GitHub 上托管了许多 Rails 应用程序。它们目前都是私有的,我经常会从他们的 GitHub 存储库中部署它们。我希望能够将其中一些开源,就像您可以在http://opensourcerails.com上找到的一样。

我的问题是:如何在不泄露超级机密凭据的情况下公开这些存储库?

例如,我可以查看 /config/initializers/cookie_verification_secret.rb 并查看几乎每一个的 cookie 秘密。我不明白这是怎么接受的。这些用户是否都以某种方式在他们的部署环境中更改了这些值?

一些用户甚至公开了他们的 AWS 秘密和密钥!其他人会将他们的 AWS 密码设置为:

尽管我不确定他们在什么时候设置了该值。

那么,在不影响应用程序安全性的情况下开源 Rails 应用程序的最佳实践是什么?

0 投票
4 回答
1685 浏览

git - 您如何 gitignore 除了目录之外的所有内容?

我正在尝试使用 cron'd git 同步我的台式机和笔记本电脑。它在单个目录上运行良好。但是我想同步分散的多个配置文件和其他一些东西。为此,我决定将我的主文件夹变成一个 git 目录并忽略除少数选定文件和目录之外的所有内容。

不工作。查看另一个 stackoverflow 问题,我发现*/并使用它而不是*. 这几乎如我所愿,但随后我散布在我的主目录中的所有随机单个隐藏文件都出现了。

0 投票
5 回答
93462 浏览

git - 我可以“git commit”一个文件并忽略其内容更改吗?

我团队中的每个开发人员都有自己的本地配置。该配置信息存储在一个名为的文件中,该文件devtargets.rb用于我们的 rake 构建任务。不过,我不希望开发人员破坏彼此的 devtargets 文件。

我的第一个想法是将该文件放在.gitignore列表中,这样它就不会提交给 git。

然后我开始想:是否可以提交文件,但忽略对文件的更改?所以,我会提交文件的默认版本,然后当开发人员在他们的本地机器上更改它时,git 会忽略这些更改,并且当你执行 git status 或 git commit 时它不会显示在更改的文件列表中.

那可能吗?这肯定是一个不错的功能...