age*_*ith 425 git github repository
我在我的机器上设置了一个本地git.当我初始化git时,我添加了预编译的库和二进制文件.但是,现在在开发过程中,我不想间歇性地检查这些文件.我不想从repo中删除这些文件.在完成开发之前,有没有办法不跟踪这些文件.(我想我不能使用.gitignore,因为它仅适用于那些不在git中的文件.我想暂时禁用文件跟踪.)
And*_*ndy 679
git update-index应该做你想要的
这将告诉git你想要开始忽略对文件的更改
git update-index --assume-unchanged path/to/file
当你想再次开始追踪时
git update-index --no-assume-unchanged path/to/file
caj*_*uuh 240
你可以保持你的文件没有跟踪
git rm -r --cached <file>
Run Code Online (Sandbox Code Playgroud)
添加你的文件
git add -u
Run Code Online (Sandbox Code Playgroud)
他们推或做任何你想做的事.
Tek*_*kub 107
git rm --cached
Run Code Online (Sandbox Code Playgroud)
但是,您不应该首先提交已编译的二进制文件和外部依赖项.使用像Bundler这样的工具来取代它们.
git-book在第2.4节"撤消事物"中提到了这一点.基本上,您需要做的是将某些文件的索引状态重置为HEAD状态,即最新结账(或提交)的状态.这会将文件暂存到当前索引.该任务的命令是git reset.[1]
因此,您必须执行的命令是:
git reset HEAD /path/to/file
Run Code Online (Sandbox Code Playgroud)
较新版本的git(我相信自1.6左右)在执行时会给出这个命令(以及更多)作为提示git status.这些版本非常人性化.个人提示:如果您只是暂存一些文件,请使用git add -i.这将启动交互式临时工具,这使得事情变得特别容易.此外,我强烈建议您阅读本书,因为在实际情况中使用git非常明确.
[1] http://www.git-scm.com/book
不是原始问题的答案。但这可能会帮助某人。
要查看您所做的更改(知道哪些文件被标记为--assume-unchanged)
git ls-files -v
Run Code Online (Sandbox Code Playgroud)
结果文件列表的前缀将带有一个字符(例如:H或h),如果是小写字母(即h),则文件标记为--assume-unchanged
| 归档时间: |
|
| 查看次数: |
386397 次 |
| 最近记录: |