有一个文件被跟踪git,但现在该文件在.gitignore列表中.
但是,该文件在git status编辑后会一直显示.你怎么强迫git完全忘掉它?
我有一个已经初始化的Git存储库,我添加了一个.gitignore文件.如何刷新文件索引以便忽略我想忽略的文件?
我想设置Git全局忽略某些文件.
我已经.gitignore在我的用户根目录(/Users/me/)中添加了一个文件,并在其中添加了以下行:
*.tmproj
Run Code Online (Sandbox Code Playgroud)
但它并没有忽略这种类型的文件,任何想法我做错了什么?
我刚开始学习git并且这样做我开始阅读Git社区书,在本书中他们说SVN和CVS存储文件之间的差异,而git存储所有文件的快照.
但我并没有真正了解快照的含义.git是否真的复制了每个提交中的所有文件,因为这是我从他们的解释中理解的.
PS:如果有任何人有更好的学习git的来源我会很感激.
我的.gitignore文件由于某种原因无法正常工作,并且没有任何谷歌搜索能够修复它.这是我有的:
*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log
Run Code Online (Sandbox Code Playgroud)
它在目录中master,这是我的git repo.我正在运行Git 1.8.4.2因为我在MacBook上运行OSX 10.8.6.
我试图删除混帐,其工作的先前跟踪的目录,但它是被加回以后每次git add .,git add -A等这里是我做了什么:
在项目的根目录中添加.gitignore:
node_modules
Run Code Online (Sandbox Code Playgroud)
运行以下命令:
git rm -r --cached node_modules
git commit -a -m "removed node_modules"
git push origin master
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利,这将从远程存储库中删除目录.问题是当我稍后运行git status它时告诉我node_modules目录是未跟踪的并且在将来的提交中继续添加它.
我缺少什么和/或如何找到问题的根源?
从这里:
默认情况下,git add命令不会添加被忽略的文件.... git add命令可用于使用-f(强制)选项添加被忽略的文件.
评论中的其他信息:
我正在跟踪.gitignore文件.
git check-ignore node_modules/ 按预期返回node_modules /.
不使用子模块.
更新:
我已经创建了一个示例,可以按照上述步骤复制问题:
https://github.com/awhitehouse104/SampleRepo
解析度:
总结下面的答案和评论,问题在于我的.gitignore文件的编码.我曾经习惯echo 'node_modules' > .gitignore在Windows 8上创建文件,它以带有BOM的UTF-16形式出现(根据下面的答案).经过一些谷歌搜索后,似乎这是PowerShell的默认编码,我可以确认保存为UTF-8似乎已经解决了这个问题.
tldr; 可能不使用这种创建.gitignore文件的方法或准备更改编码
echo 'node_modules' > .gitignore
我正在进行一些搜索和替换操作,我正在尝试使用PowerShell进行自动化.不幸的是,我昨天认识到我们的代码库中有不同的文件编码(UTF8和ASCII).因为我们在不同的分支中执行这些搜索和替换操作,所以在此阶段我无法更改文件编码.
如果我正在运行以下行,它会将所有文件更改为UCS-2 Little Eindian,即使我的默认PowerShell编码设置为iso-8859-1(西欧(Windows)).
$content = Get-Content $_.Path
$content -replace 'myOldText' , 'myNewText' | Out-File $_.Path
Run Code Online (Sandbox Code Playgroud)
有没有办法阻止PowerShell更改文件的编码?
我的/project目录中有一个框架,我有多个.sass-cache文件夹.
例如,我可以拥有这个
/project/-/-/one/.sass-cache
Run Code Online (Sandbox Code Playgroud)
还有这个
/project/-/-/two/.sass-cache
Run Code Online (Sandbox Code Playgroud)
还有这个
/project/three/.sass-cache
Run Code Online (Sandbox Code Playgroud)
我想添加所有的.gitignore.我试过这个:
# Sass #
###########
*.sass-cache*
Run Code Online (Sandbox Code Playgroud)
但它失败了,而且git仍然接受了它们的变化.如何将我的.sass-cache文件夹正确添加到我的.gitignore文件中?
我的.gitignore文件没有用,所以我按照这个问题.
现在我有一堆我需要提交的文件,以便继续.我犯了一个错误并犯了错误,因为我找不到办法摆脱那些.
有什么方法可以恢复所有这些行动吗?我不能做reset因为我现在得到错误:
error: The following untracked working tree files would be overwritten by checkout.
愚蠢的愚蠢错误,我可以找到解决方案.