如果在存储库中发生更改,是否可以停止跟踪您“确实”想要下拉的文件的本地更改?

2023-12-13

我们在存储库中有一个配置文件,所有用户都根据其功能贡献该文件。对于我的本地测试,我需要手动更改该配置文件中的两个值,但我不想将更改提交回服务器。

但是,如果存储库中有更新的版本,我确实希望对文件进行更新,即使这意味着我的本地更改将被覆盖。没关系,我可以用我专门为此创建的储藏室再次制作它们。

我想知道我是否可以告诉 Git“嘿...我会的”never将我的本地更改推回到服务器,因此不要将其显示为已更改,但如果you有新的改变给我,让我在拉的时候得到它们!”

这是我所追求的一个例子。

Server: VersionA
Local:  [Nothing]

(I do a Git Pull)

Server: VersionA
Local:  VersionA

(I make local changes)

Server: VersionA
Local:  VersionA (Modified)

(What I want...)

Server: VersionA
Local:  VersionA (Modified, but ignored locally by Git)

(Someone checks in an update to the file)    

Server: VersionB
Local:  VersionA (Modified, but local changes ignored by Git)

(I do a git Pull)

Server: VersionB
Local:  VersionB (This overwrites my local, modified VersionA)

(I then manually update VersionB with my stashed changes)

Server: VersionB
Local:  VersionB (modified, but local changes ignored by Git)

The .gitignore文件在这里不适用,因为这会阻止添加新文件,但同样,该文件具有already已添加。我只是希望它始终忽略我的本地更改,就好像它们不存在一样。我只关心服务器上的文件是否已更改。

那么可以配置 Git 来做到这一点吗?


The .gitignore文件在这里不适用,因为这会阻止添加新文件,但同样,该文件具有already已添加。
我只是希望它始终忽略我本地的更改。

另一种方法是进行修改......private文件,该文件未被跟踪并被忽略。

这意味着所有共同贡献都是在一个template文件., 用来generate实际文件(作为私有的非版本化文件,添加到您的.gitignore).

那一代人将自动开启git checkout.

首先,重命名现有文件:

git mv aConfigFile aConfigFile.tpl
git commit -m "record template config file"

然后添加到aConfigFile to a .gitignore文件:一个git status不会再显示要添加/更改的内容。

现在,声明一个污点内容过滤器驱动程序这将自动重新生成该文件(被忽略,因为它位于.gitignore)

https://git-scm.com/book/en/v2/images/smudge.png
(image from "Customizing Git - Git Attributes", from "Pro Git book")

smudge脚本(您可以版本):YourScript

copy aConfigFile.tpl aConfigFile

在版本化中声明内容过滤器驱动程序.gitattributes:

echo 'aConfigFile.tpl config' >> .gitattributes

每个克隆该存储库的用户都需要在本地激活该污迹“配置”内容过滤器驱动程序。

cd /path/to/repo
git config filter.config.smudge YourScript

最后一步是每个用户唯一需要执行的步骤,以便从每个用户上自动生成的实际配置文件中受益。git checkout.

对生成的文件所做的任何修改都将保留在本地。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果在存储库中发生更改,是否可以停止跟踪您“确实”想要下拉的文件的本地更改? 的相关文章

  • `git push` -- 没有输出,什么也没有发生

    touch test git add test git commit m test git push u origin master 这奏效了 该文件已上传到存储库 rm test cp R website website git rm t
  • 如何在不在存储库中的情况下执行 Git 命令?

    有没有一种方法可以在不位于存储库的情况下对存储库执行 Git 命令 例如这样的事情 git home repo log 请不要告诉我cd到它 我正在通过一个exec call Use C作为 git 的第一个参数 git C home re
  • 部分共享git仓库

    我是 git 新手 我想知道是否支持以下场景 如果支持的话如何支持 即用于设置和更新的 git 命令 可以从三个不同的地方获取存储库 本地 镜像 和 github mirror 完全镜像 local github 镜像 local 但 受版
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • 是否可以检测 http git 远程是智能还是愚蠢?

    我正在我的应用程序中实现一个选项来使用 depth 1制作 git repo 的最小功能克隆 我刚刚意识到愚蠢的 http 传输不支持 depth 我想自动检测 http 远程是愚蠢的还是聪明的 这样我就可以省略 depth与哑 http
  • 有没有办法导入/导出容器绑定脚本

    我有一个插件 它使用 appscripts gs 以及 html js 和 css 文件 目前我们所做的是我们有一个参考 Google 文档 其中有一个脚本项目包含所有这些源代码 但是除了手动复制和粘贴之外 没有办法在 GIT 中保留源代码
  • 删除并在另一个文件夹中重新创建后保留文件的 Git 历史记录

    我有以下场景 删除了提交 1 中名为 src GetData cs 的文件 在提交 5 中创建了一个名为 src Get GetDataNew cs 的文件 在提交 7 中将 2 中的文件重命名为 src Get GetData cs 1
  • git push --force-with-lease 总是安全吗?

    我一直遵循的规则是 一旦 git 历史记录被推送到远程存储库 就不再修改它 但我想知道交互式变基到推送 force with lease 是否绕过了这条规则 如果强制租约成功 对其他用户来说是否完全安全 或者此策略有任何注意事项吗 预先感谢
  • 有没有一种干净的方法来处理两个以相同内容开头的原始 git 存储库?

    假设我有两个根据相同的初始内容创建的存储库 例如 如果我使用 git 来管理 etc apache2 中的 apache 配置文件 然后我运行git init分别在机器 A 和机器 B 上 此后 我对 machine b 进行了一些配置更改
  • PHP Github Pull 脚本错误“权限被拒绝(公钥)”

    我已经设置了一个 PHP 脚本来执行 GitHub 拉取 这包含在我的 Github 文件夹中 home mysite public html github github pull php 我的服务器已经有 SSH 公钥 就像我执行git
  • 仅使用 git 存储未暂存的更改(不是 --keep-index)

    首先 我确实知道 keep index 这不是我想要的 因为它仍然隐藏着all更改 但将暂存的更改保留在工作树中 如果可能的话 我只想存储未暂存的文件 而无需再次添加所有更改git stash patch 如果您想存储索引 已暂存的内容 和
  • BitBucket 应用程序密码:git 命令行访问有哪些权限?

    我了解如何为 BitBucket 创建应用程序密码 如中所述Atlassian 的应用程序密码信息 https support atlassian com bitbucket cloud docs app passwords and 这个答
  • 在git的远程存储库上创建私有分支

    我想在我们公司的 git 上构建特定的流程 开发人员在他的本地计算机上创建一个分支并在那里提交一些文件 dev 将此分支推送到远程仓库 其他开发者无法访问该分支 经过几轮推动开发人员决定发布他的更改 将他的私人分支合并到公共分支 推动该公共
  • 如何在 EGit 中创建正确的新本地和远程分支组合?

    我想在 Egit 中执行以下操作 git checkout b newbranch git push u origin newbranch 这给了我一个新的本地分支 将其推送到上游服务器并创建正确的跟踪参考 我如何在 Egit 中做同样的事
  • Git Hook - 在我推送到 github 后让服务器拉取

    我有一个本地存储库 并且我在实时服务器上设置了另一个存储库 www site com projects ProjectA 我想要实现的目标非常简单 在我推送到 GitHub 后 我想要存储库位于www site com projects P
  • Git worktree prune - 它有什么作用?

    我在用着git 版本 2 14 2 windows 2并调用 git worktree add
  • 使用 ssh-keygen 创建 SSH 密钥不会创建 .ssh 文件夹

    我正在尝试使用 msysgit 创建我的公共 私有 rsa 密钥对 我运行这个命令 ssh keygen C email protected cdn cgi l email protection t rsa 一切看起来都很好 我收到消息了
  • 如何从现有存储库中的分支创建新的 GitHub 存储库?

    I have master and 新项目分支机构 现在我想创建一个全新的存储库及其基于新项目分支的主存储库 背景 我有一个存储库 其中包含三个独立的应用程序 事情并不是这样开始的 仓库中最初只有一个应用程序 然而 随着时间的推移 业务需求
  • git Push Remote:警告:hooks.mailinglist 有多个值

    我刚刚从使用 gitosis 升级到 gitolite 电子邮件通知适用于所有存储库 但对于 gitolite admin 存储库 我在推送时收到此警告 推送很好 git push remote warning hooks announce
  • 本地提交推送到中央服务器

    在工作中 我们使用 perforce 并被鼓励定期对其进行承诺 我对此很满意 然而 我想运行像 Mercurial 这样的东西 这样我就可以在本地提交正在进行的工作并且不一定编译 运行的东西 然后从中定期提交到中央 perforce 服务器

随机推荐

  • 通过 Android 访问 Google 帐户 ID/用户名

    如何在代码中访问用户的 Google 帐户 ID 用户名 我正在构建一个应用程序 它将调用 Web 服务来存储数据 并且我想识别提交数据的人的身份 我遇到了同样的问题 这两个链接为我解决了 第一个是这个 如何在 Android 手机上找回已
  • 字符串数组列表成一个逗号分隔的字符串

    尝试将字符串的 Arraylist 转换为一个大逗号分隔的字符串 但是当我使用 String joined TextUtils join participants 调试器显示参与者的大小为 4 但是连接值为 因此为空 private Arr
  • Symfony 1.4 邮件程序中的电子邮件正文?

    我正在使用 Symfony 1 4 邮件程序 在其中构建电子邮件所需的各个部分 然后使用以下命令将其发送出去 this gt getMailer gt composeAndSend sender recipient subject body
  • 在反应本机地图上需要未知模块“未定义”

    我想实现react native mapshere 但是当我导入上面的 MapView 时App js与代码import MapView from react native maps 我收到此错误 需要未知模块 未定义 如果您确定该模块存在
  • 子进程调用无效参数或选项未找到

    我试图在 Linux 上使用 subprocess call 调用 ffmpeg 命令 但我无法获得正确的参数 之前 我使用了 os system 并且它有效 但不推荐这种方法 使用带破折号的参数 例如 i 会出现此错误 Unrecogni
  • 如何使用 JHipster 注册表修复无效的 JWT [Docker]?

    我想用 JHipster 构建一个微服务软件 我正在 Docker 中运行 jhipster registry v3 2 4 我还有一个微服务应用程序 使用生成器 5 0 1 创建 但我没有生成网关应用程序 我在 docker compos
  • 在SQL / MySQL中,连接语句中的“ON”和“WHERE”有什么区别?

    以下语句给出相同的结果 一个是使用on 另一个使用where mysql gt select from gifts INNER JOIN sentGifts ON gifts giftID sentGifts giftID mysql gt
  • 具有抽象类的 JPA 实体继承 - ConstrainViolationException

    我正在尝试使用 JPA 注释和抽象类设置实体继承 我们的目标是让 DAO 通过其扩展与基础对象一起工作 以便我们可以通过使用不同的实体扩展 切入点和覆盖来对同一应用程序进行修改 而无需更改提供者和管理器 例子 基础应用程序堆栈有一个 DAO
  • 使用递归在Scheme中进行排列

    我发现了以下一段代码 它在Scheme中进行了排列 我的意思是 如果我输入类似的参数 1 2 3 它会给我 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 代码如下 define remove x lst cond
  • 使用 jQuery 和 JSONP 跨域检索 html

    我有一个表单 可以输出一行简单的 html a href link A LINK a 我可以直接使用附加到 url 的数据来访问该流程 例如http site com form asp sample 100 因为这是跨域 到子域 所以我尝试
  • C 中的精确宽度整数类型 (stdint.h)

    我希望 char short 和 int 类型的宽度为 1 2 和 4 个字节 我已经包括了stdint h标题进入我的来源 这是否保证 int8 t int16 t 和 int32 t 整数类型具有指定的宽度 实现这一目标的最佳方法是什么
  • Plon 4.3 默认编辑器未显示

    我有一个 Plone 4 3 站点 它是从 Plone 2 5 站点迁移而来的 它一直工作得很好 但由于某种原因 编辑任何页面或内容项时显示的默认编辑器是直接的 HTML 视图 我已经在 Firefox Chrome 和 Safari 中对
  • Excel VBA 搜索按钮

    我正在尝试使用文本框和命令按钮在整个工作簿中搜索特定单词或值 例如 3132 或 工作指令 到目前为止 我可以搜索我所在的工作表 但无法搜索工作簿的其余部分 另外 一些工作表是隐藏的 对此的任何见解都会有益并帮助我很多 我在下面列出了我当前
  • 颤振错误:java.lang.NoSuchFieldError PREFER_HIGHEST_OR_REMOTE_VERSION_NO_FORCE_STAGING

    我试图解决这个问题 但它总是给我同样的错误 我使用以下 Firebase 服务 Firebase 身份验证 Firebase 数据库 Firebase 存储 Firebase 消息传递 我希望能解决这个问题 感谢您的帮助 谢谢 截屏 Her
  • 如何从分类变量创建交互设计矩阵?

    我主要从事 R 统计建模 机器学习工作 并希望提高我的 Python 技能 我想知道在 python 中创建分类交互 任意程度 的设计矩阵的最佳方法 一个玩具示例 import pandas as pd from urllib import
  • DDD 中的有界上下文与 CQRS。共享聚合/实体。可能的?

    我找到了这个代码示例 https code google com p ddd cqrs sample 看起来非常完整且组织良好 不是一个 框架 只是一个示例项目 具有非常精细和明确的做事方式 但是 不完整 这带来了一些疑问 他们很擅长回答你
  • 使用 numpy 加权百分位数

    有没有办法使用 numpy percentile 函数来计算加权百分位数 或者有人知道计算加权百分位数的替代 python 函数吗 thanks 完全矢量化的 numpy 解决方案 这是我使用的代码 这不是一个最佳的 我无法用numpy 但
  • 从 C# 控制相机设备

    我现在面临一个问题 要将实时图像从相机 例如索尼 佳能 获取到winform 并从表单中的按钮控制相机捕获按钮 有没有人构建过这样的东西 或者有没有类似的项目是用 C 完成的 这几乎取决于相机及其驱动程序的功能 您最大的机会可能是 Wind
  • 时间:2019-03-17 标签:c#dllimportwithpointers

    我有一个 dll 无法导入到我的 vs2012 c 项目中 我以前使用过 dllImport 但以前从未使用过 Marshal 或指针 我想我很幸运 这是我目前拥有的代码 被调用的函数是 fnLDA GetDevInfo DEVID Act
  • 如果在存储库中发生更改,是否可以停止跟踪您“确实”想要下拉的文件的本地更改?

    我们在存储库中有一个配置文件 所有用户都根据其功能贡献该文件 对于我的本地测试 我需要手动更改该配置文件中的两个值 但我不想将更改提交回服务器 但是 如果存储库中有更新的版本 我确实希望对文件进行更新 即使这意味着我的本地更改将被覆盖 没关