git移除文件 - git隐藏文件




忽略已经提交到Git存储库的文件 (14)

这个问题在这里已有答案:

我有一个已经初始化的Git存储库,我添加了一个.gitignore文件。 如何刷新文件索引以便忽略我想忽略的文件?


删除.gitignore中的尾部空格

另外,请确保.gitignore中没有尾随空格。 我得到了这个问题,因为我正在寻找答案,然后我有一种有趣的感觉,我应该打开编辑器,而不仅仅是cat'ing .gitignore。 从结尾删除了一个额外的空间,现在它的工作原理:)


不知道'回答'命令做了什么,我跑了,很让我感到沮丧。 它以递归方式从git仓库中删除每个文件。

救援...... 如何恢复“git rm -r。”?

git reset HEAD

诀窍,因为我有未提交的本地文件,我不想覆盖。


在我的服务器linux服务器上(在我的本地开发mac上不是这样),只要我不添加星号,就会忽略目录:

WWW /档案馆/ *

我不知道为什么但它让我松了几个小时,所以我想分享......


如果你想停止跟踪文件而不删除本地系统中的文件,我更喜欢忽略config/database.yml文件。 只需尝试:

git rm --cached config/database.yml
# this will delete your file from git history but not from your local system.

现在,将此文件添加到.gitignore文件并提交更改。 从现在开始,对config / database.yml所做的任何更改都不会被git跟踪。

$ echo config/database.yml >> .gitignore

谢谢


如果您需要停止跟踪大量被忽略的文件,可以组合一些命令:

git ls-files -i --exclude-standard | xargs -L1 git rm --cached

这将停止跟踪被忽略的文件。 如果要从文件系统中实际删除文件,请不要使用--cached选项。 您还可以指定限制搜索的文件夹,例如:

git ls-files -i --exclude-standard -- ${FOLDER} | xargs -L1 git rm


如果文件已在版本控制中,则需要手动删除它们。


我发现.gitignore有一个奇怪的问题。 一切都到位,似乎是正确的。 我的.gitignore被“忽略”的唯一原因是,行结尾是Mac格式(\ r)。 所以在使用正确的行尾保存文件后(在vi中使用:set ff = unix)一切都像魅力一样!


我按照这些步骤

git rm -r --cached .
git add .
git reset HEAD

之后,git删除应忽略的所有文件(在我的情况下为* .swp)。


是的 - .gitignore系统只忽略当前不受git版本控制的文件。

即如果你已经使用git-add添加了一个名为test.txt的文件,那么将test.txt添加到.gitignore仍然会导致对test.txt更改被跟踪。

您必须首先git rm test.txt并提交更改。 只有这样才会忽略对test.txt更改。


正如dav_i所说,为了将文件保存在repo中并将其从更改中删除而不创建额外的提交,您可以使用:

git rm -r --cached .

要取消已经添加/初始化到存储库的文件,即停止跟踪文件但不从系统中删除它: git rm --cached filename


要解压缩已经添加/初始化到存储库的单个文件, 停止跟踪文件但不从系统中删除它: git rm --cached filename

要解开现在位于.gitignore 每个文件:

首先提交任何未完成的代码更改 ,然后运行以下命令:

git rm -r --cached .

这将从索引 (暂存区域)中删除所有已更改的文件,然后运行:

git add .

承诺:

git commit -m ".gitignore is now working"

要撤消git rm --cached filename ,请使用git add filename

确保在运行git add .之前提交所有重要更改git add . 否则,您将丢失对其他文件的任何更改。


还有另一个建议可能是像我这样的慢人=)将.gitignore文件放入存储库根目录而不是 .git文件夹中。 干杯!


这些答案都不适合我。

代替:

  1. 将文件移出git控制的目录
  2. 检查删除到git
  3. 将文件移回git控制的目录

将文件移回后,git会忽略它。

也适用于目录!





git-rm