我有文件夹application /我添加到.gitignore.应用程序/文件夹内是文件夹application/language/gr.我该如何包含此文件夹?我试过这个
application/
!application/language/gr/
Run Code Online (Sandbox Code Playgroud)
没有运气......
我在Heroku上遵循了node.js的基本入门说明:
https://devcenter.heroku.com/categories/nodejs
这些指令不会告诉您创建.gitignore node_modules,因此暗示应该将node_modules签入git.当我在git中包含node_modules时,我的入门应用程序正确运行.
当我按照更高级的例子:
https://devcenter.heroku.com/articles/realtime-polyglot-app-node-ruby-mongodb-socketio https://github.com/mongolab/tractorpush-server(source )
它指示我将node_modules添加到.gitignore.所以我从git中删除了node_modules,将其添加到.gitignore,然后重新部署.这次部署失败如下:
-----> Heroku receiving push
-----> Node.js app detected
-----> Resolving engine versions
Using Node.js version: 0.8.2
Using npm version: 1.0.106
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
Error: npm doesn't work with node v0.8.2
Required: node@0.4 || 0.5 || 0.6
at /tmp/node-npm-5iGk/bin/npm-cli.js:57:23
at Object.<anonymous> (/tmp/node-npm-5iGk/bin/npm-cli.js:77:3)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at …Run Code Online (Sandbox Code Playgroud) 我有一个gitignore文件,使git忽略*.dll文件,这实际上是我想要的行为.但是,如果我想要一个例外(即能够提交foo.dll),我该如何实现呢?
如何向.gitignore添加一个例外,比如"忽略所有.dll文件但是 myfile.dll"?
我的程序通常生成巨大的输出文件(~1 GB),我不想备份到git存储库.所以不是能够做到的
git add .
Run Code Online (Sandbox Code Playgroud)
我必须做点什么
git add *.c *.cc *.f *.F *.C *.h *.cu
Run Code Online (Sandbox Code Playgroud)
这有点麻烦......
我相信我可以编写一个快速的perl脚本,将目录内容写入.gitignore,然后根据.gitinclude(或类似名称)文件删除文件,但这似乎有点过于苛刻.有没有更好的办法?
我正在尝试解决大型目录结构上的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仓库里有一堆WordPress网站,其中我想有选择地只提交我themes文件夹的内容,而忽略了WordPress中的其余冗余文件.
我之前使用.gitignore文件来忽略文件类型,但它可以反过来使用 - 即忽略一切但是某个文件夹路径?
root(git repo)
- /wordpress
- - /(WordPress Site 1)/ wp-content/themes
- - /(WordPress Site 2)/ wp-content/themes
- - /(WordPress Site 3)/ wp-content/themes
谢谢-
更新:
根据答案我做了以下,但它不起作用.有任何想法吗?
# Ignore everything:
*
# Except for wordpress themes:
!*/wp-content/themes/*
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下变化:
!*/wp-content/themes*
!*wp-content/themes/*
!wp-content/themes/*
!/wordpress/*/wp-content/themes*
!wordpress/*/wp-content/themes*
Run Code Online (Sandbox Code Playgroud)
这些都没有读取我的themes文件夹.
除非在特殊文件中指定,否则可以让git默认忽略所有文件?
我只为文本文件创建了一个白名单.
*
!*.txt
Run Code Online (Sandbox Code Playgroud)
现在,我在子目录中有一个未跟踪的文本文件 - sub/dir/file.txt并且未显示(忽略它).但是,会显示根目录中的文本文件.
为什么会这样,我该如何解决?
我试图使用带有否定模式的.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.