git - 一个文件需要在 git global repo 中,它应该被 git 忽略
问题描述
我有一个文件必须在每个人的机器以及 git 全局存储库中,然后我必须编辑该文件,它应该被 git 忽略。
我尝试过使用: 1. git rm --cached 2. git update-index --assume-unchanged 3. git update-index --skip-worktree
解决方案
Git 不存储文件。Git 存储提交。确实 commits 存储文件——所以你可以让Git 存储文件——但 Git 存储的是commits。
如果你想在 Git 中存储一个文件,你必须把它放在一些提交集中。就是这么简单。进行包含文件的新提交,您就完成了:文件现在存储在 Git 存储库中。
如果你想从一个特定的提交中获取一个特定的文件,作为一个未跟踪的文件进入你的工作树:好吧,这完全是另一个问题。有很多方法可以做到这一点,包括新的 Git 2.23-or-newer 。目前适用于大多数 Git 品种的一种方法是使用:git restore
git show
git show <commit-specifier>:<path>
将给定路径的内容显示到其标准输出。
您可以让所有用户执行以下操作:
git show your-tag:path/to/file.ext > file.ext
或者:
git show your-branch:path/to/file.ext > file.ext
或者:
git show <raw hash ID>:path/to/file.ext > file.ext
将由原始哈希 IDpath/to/file.ext
标记your-tag
或命名或给出的一个特定提交中命名的一个特定文件提取到名称下的工作树中。your-branch
file.ext
请注意,如果有人以任何方式签出这个特定的提交,该文件将出现path/to/file.ext
在他们的工作树中并被跟踪(在索引中),因为它在那个提交中。签出其他没有该文件的提交path/to/file.ext
将从索引和它们的工作树中删除,因为该其他提交没有该文件。这就是为什么我们使用一种技巧,例如git show
查看文件而不将其复制到索引中。
推荐阅读
- c# - 将 IIncludableQueryable 对象传递给实体框架核心中的 DbSet
- pytorch - 如何从张量中获取值?
- r - 添加国家标志以使用 gganimate 重现图表
- docker-compose - 使用 Docker-Compose 文件安装 GitLab-CE - Ssh git 用户询问密码
- html - 如何使用 Google 电子表格和云端硬盘创建自定义 HTML 表单
- java - 在保留的中心框周围以圆形图案将网格框分配给用户
- firebase - 如何使用`where`查询使用 Flutter 从 Cloud Firestore 搜索数组中存在的内容?
- python - Maya Python:通过三重列表连接三个关节链
- azure-cosmosdb - 跨整个集合的数据转换
- r - 对循环 ggplot2 使用标签而不是变量名