我已经在我的机器上设置了一个本地git。初始化git时,我添加了预编译的库和二进制文件。然而,现在在我的开发过程中,我不想间歇性地签入这些文件。我不想从回购中删除这些文件。是否有任何方法不跟踪这些文件,直到我完成我的开发。(我想我不能使用.gitignore,因为它只适用于那些不在git中的文件。我想暂时禁用文件跟踪。)
当前回答
你可以让你的文件不被追踪
git rm -r --cached <file>
使用
git add -u
他们会推你或者做任何你想做的事。
其他回答
使用以下命令取消跟踪文件
git rm --cached <file path>
假设不变的替代方法是skip-worktree。后者有不同的含义,类似于“Git不应该跟踪这个文件。开发者可以(也被鼓励)在本地做出改变。”
在您不希望跟踪构建文件的更改(通常是较大的)的情况下,假设—unchanged是一个不错的选择。
在这种情况下,文件应该有默认内容,开发人员可以自由地在本地修改文件,但不应该检查他们的本地更改回到远程回购,跳过工作树是一个更好的选择。
另一个优雅的选择是在repo中有一个默认文件。假设文件名是BuildConfig.Default.cfg。开发人员需要在本地将其重命名为BuildConfig.cfg,并且他们可以进行所需的任何本地更改。现在将BuildConfig.cfg添加到.gitignore中,这样文件就不会被跟踪了。
看这个问题,在公认的答案中有一些很好的背景信息。
Git update-index应该做你想做的事情
这将告诉git您想开始忽略对文件的更改 Git update-index——assume-unchanged path/to/file
当你想重新开始记录的时候 Git update-index——no-assume-unchanged path/to/file
Github文档:update-index
git rm --cached
但是,您不应该首先提交已编译的二进制文件和外部依赖项。使用像Bundler这样的工具来把它们拉进来。
你可以让你的文件不被追踪
git rm -r --cached <file>
使用
git add -u
他们会推你或者做任何你想做的事。
推荐文章
- 如何点Go模块的依赖在Go。Mod到回购中的最新提交?
- 乳胶渲染在README。md在Github上
- 为什么调用git分支——unset-upstream来修复?
- Windows git“警告:LF将被CRLF取代”,这是警告尾巴向后吗?
- git中的哈希冲突
- git可以自动在空格和制表符之间切换吗?
- Git暂存文件列表
- 在Markdown Jekyll中使用图像说明
- 如何将git配置存储为存储库的一部分?
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 我如何调试git/git-shell相关的问题?
- 错误:无法使用rebase进行拉取:您有未分阶段的更改
- Git隐藏未缓存:如何把所有未分期的变化?
- 如何将文件附加到GitHub问题?