暂时从git中删除文件

我在我的机器上安装了一个本地git。 当我初始化git时,我添加了预编译的库和二进制文件。 但是,现在在我的开发过程中,我不想间歇性地检查这些文件。 我不想从回购中删除这些文件。 有什么方法可以在完成我的开发之前不对这些文件进行跟踪。 (我想我不能使用.gitignore,因为它只适用于那些不在git中的文件,我想暂时禁用跟踪文件。)

git update-index应该做你想做的

这将告诉你想开始忽略对文件的更改
git update-index --assume-unchanged path/to/file

当你想再次开始跟踪
git update-index --no-assume-unchanged path/to/file

Github文档:update-index

你可以保持你的文件未跟踪

 git rm -r --cached <file> 

添加你的文件

 git add -u 

他们推动或做任何你想要的。

 git rm --cached 

但是,您不应该首先提交编译的二进制文件和外部依赖关系。 使用Bundler这样的工具来代替这些工具。

使用下面的命令来解开文件

 git rm --cached <file path> 

git-book在第2.4节“撤销事物”中提到了这一点。 基本上,你所要做的就是将某些文件的索引状态重置为HEAD状态,也就是将最新的checkout(或commit)的状态。 这将撤销文件到当前索引。 这个任务的命令是git reset 。[1]

所以,你必须执行的命令是:

 git reset HEAD /path/to/file 

新版本的git(我相信从1.6版本开始)在执行git status时候会提供这个命令(还有更多)。 这些版本是非常用户友好的。 个人build议:如果您只是暂存几个文件,请使用git add -i 。 这将启动交互式分段工具,使事情变得特别容易。 另外,我强烈推荐阅读这本书,因为它在实际情况下非常明确地使用git。

[1] http://www.git-scm.com/book

我假设你问如何删除生成文件夹或bin文件夹中的所有文件,而不是单独select每个文件。

你可以使用这个命令:

git rm -r -f /build\*

确保您位于构build目录的父目录中。
该命令将recursion地“删除”bin /或build /文件夹中的所有文件。 通过删除这个词我的意思是git会假装这些文件被“删除”,这些文件将不会被跟踪。 git确实将这些文件标记为删除模式。

确保你有你的.gitignore准备好即将到来的提交。
文档:git rm

不是原来的问题的答案。 但这可能有助于某人。

要查看所做的更改( 知道哪些文件被标记为 – 未修改

 git ls-files -v 

结果的文件列表将有一个字符的前缀(例如:H或h)如果它是一个小写字母(即h),那么该文件被标记为 – 未修改

git reset [文件]

从暂存区获取文件到工作目录

我经常忘记将我的节点模块添加到.gitignore文件,这解决了这个问题。

删除所有Untrack文件。试试这个terminal命令

  git clear -fdx 

删除未跟踪的文件和文件夹设置git干净-fdx