暂时从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。
我假设你问如何删除生成文件夹或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