如何从合并中排除文件?

2024-01-02

我刚刚开始了解 git,目前正在考虑合并。假设我有一个主分支,并创建一个名为子分支的分支。我在子分支上工作并更改了一些文件。现在我想将这个子分支合并到主分支中:

git merge child

然而,子分支中有一些文件(也在主分支中)我不想合并。如何将子项中的更改合并到主项中,但从子项中排除特定文件?


简短的回答很简单:不。

长答案要复杂得多,但也等于“不”。本质上,您可以在some情况下,让 Git 相信如果有变化双方合并的变化总是冲突. See 这个答案 https://stackoverflow.com/a/38023172/1256452到一个相关的问题(虽然我真正说的是你可以将文件标记为二进制,或者设置特殊的合并驱动程序,但是即使要达到这一点,你也需要了解很多背景知识)。

如果您想避免某些文件,您可以做的是运行您的git merge with --no-commit:

$ git status
On branch master
nothing to commit, working directory clean
$ git checkout -b sidebranch
... lots of coding, git committing, etc
$ git checkout master
... more coding and committing, etc.,
    or various merges of other branches,
    so that master and sidebranch are
    actually divergent (if they are
    not, note that merge would
    normally do a "fast forward" here)
$ git merge --no-commit sidebranch

此时,Git 将使用我在链接答案中描述的过程进行合并(通过进行两个差异,然后组合两个差异)。但它不会自动提交结果合并,即使成功了.

这意味着您现在可以执行以下操作:

$ git rm path/to/ickyfile
    # we don't want this file, it's icky!

和/或这个:

$ git checkout --ours -- path/to/foo; git add path/to/foo
    # we want the current (master) version of this file,
    # ignoring all the changes made in the side branch

甚至像这样的东西(但不要这样做:结果有时被称为“邪恶合并”):

$ vim path/to/bar
<make changes that come from neither master nor sidebranch>
$ git add path/to/bar

一旦你完成了让不好的事情发生在一个好的合并中:-),你就可以运行git commit来完成合并。

一般来说,如果您发现需要执行此操作,则您可能使用了错误的工具。特别是,当“正确”的事情是时,人们经常使用配置文件执行上述操作首先不要将这些文件放入 Git(或任何版本控制系统)中。

(相反,放置一个exampleVCS 中的配置文件。代替prog.conf、添加并提交prog.conf.example. Put prog.conf在你的.gitignore。如果需要,您的安装/初始化代码可以将示例配置复制到位,以进行新用户设置。)

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

如何从合并中排除文件? 的相关文章

  • 如何将 GIT 调用的输出获取到批处理脚本中的变量中?

    我有一个 git 命令来获取当前存储库的最新 SHA 如下所示 git log pretty format H n 1 我有一个 Windows 批处理脚本 我想按如下方式使用它 SET CURRENT SHA 但我不知道如何将从 git
  • GIT - 推送到 (GitHub) origin master 没有任何作用

    我已经分叉了某人的 GIT 存储库 https github com nippysaurus toodledo objc 将其克隆到我的本地计算机 显示带有以下信息的来源 remote origin Fetch URL https emai
  • 如何生成类似github的影响图?

    是否有一些程序 或者我错过的一些神奇的 git 插件 可以从 git 存储库获取影响图或类似的东西 而无需通过 github 就数据收集而言 我可以生成图表 我不确定从哪里开始编写自己的代码 我假设有一些标志我可以传递给 git log 来
  • 自动同步两个 git 存储库

    是否可以保持同步两个 Github 存储库 远程 的特定文件夹 有两个 github 存储库 repoA 和 repoB 这两个存储库都有名为 ABC 的文件夹以及其他独特的文件夹 如果repoA的文件夹ABC中的任何文件有更新 我想自动更
  • Jenkins GIT 包含从未构建过的区域

    我正在尝试使用包含区域在 Jenkins 中构建我的工作 但每当选中此选项时 民意调查结果总是说未检测到任何更改 我尝试了许多不同的路径 以及使用工作区进行 不进行强制轮询 结果是轮询从未检测到任何更改 但一旦我删除这些选项 它们就会在下一
  • TortoiseGit - 更改默认合并消息

    系统描述 Windows 7的 git版本2 10 1 windows 1 乌龟Git 2 3 0 0 I want 合并提交消息在不同的情况下有所不同fully自动方式 no manual amend Summary 在windows上
  • 在工作表中合并行和求和值

    我有一个 Excel 工作表 其中包含以下数据 管道 来分隔列 A B C X 50 60 D E F X 40 30 A B C X 10 20 A B C Y 20 20 A B C X 20 70 D E F X 10 50 A B
  • 如何使用 git --word-diff 显示空格差异?

    为了说明问题 参见diff https github com nim lang Nim commit 47c7fd037ed28b7de3d120b003d059d30e18f128 diff split diff 8af935b2312d
  • 使用 TFS REST API 获取 Git 提交的最新关联工作项

    我正在尝试获取关联的工作项使用 TFS REST API 进行 GIT 提交 https www visualstudio com en us docs integrate api git commits 我的请求 URL 如下所示 htt
  • 如何让 git 显示作者日期指定日期范围内的提交?

    显然this https stackoverflow com a 11189286 281545 git log all after
  • 如何恢复已删除的远程分支

    我们的远程主分支被删除 我有主存储库的本地副本 但它已经过时了 我可以通过将最后一个已知的提交哈希值插入 URL 来查看 github 中的分支 但未能成功恢复它 我尝试了几个步骤来恢复它 git reset hard 16deddc05c
  • 删除 Xcode 项目的源代码控制

    我在 Xcode 项目上使用源代码控制已经有一段时间了 但现在我不想使用源代码控制 如何从 Xcode 中的项目中删除源代码控制 有三种方法 方法 1 将禁用所有项目的源代码管理 方法 2 将删除所有项目的单个存储库的链接 方法 3 将删除
  • 为什么从网上下载Git 2.0,总是得到1.9.4的安装包?

    为什么从网上下载Git 2 0 总是得到1 9 4的安装包 为什么你不能在互联网上的任何地方找到一个不仅标记为 2 0 而且你下载的安装存档也标记为这样的 Git 安装程序包 例如 这个2 1 3 站点 http git scm com d
  • 是否可以从 Github 网站或 API 获取分支合并列表?

    在我们的工作流程中 不会 直接 提交到主分支 主分支仅接收来自 Pull 请求的合并 我们可以将每次合并视为添加到主分支的新功能 因此 我想获得一个合并到 master 中的列表 作为一种可视化随着时间的推移添加到产品中的功能块的方式 gi
  • 有什么方法可以从提交的消息中获取提交的 SHA 值吗?

    当做一个git tag 我并不总是擅长记住 HEAD 6 例如 是包含的还是排他的 鉴于我的大多数提交都以问题号为前缀 我想知道是否有一些神奇的命令可以从其消息的一部分中搜索提交 SHA 我知道这很容易做到git log并从那里开始工作 但
  • Git - 使用过滤器分支删除带有空变更集的提交

    如何使用 git filter branch 删除没有变更集的提交 我使用以下方法重写了我的 git 历史记录 git filter branch tree filter rm r f my folder f HEAD 效果很好 但现在我有
  • git rebase 吃了我的提交!为我翻译“git reflog”输出?

    我已经完成了五次提交 我想在推送它们之前将它们全部合并为一次提交 出于某种原因 我决定尝试通过与通常使用的不同的方式来做到这一点 FWIW 我试图按照此处的说明进行操作http gitready com advanced 2009 02 1
  • 使用nodegit切换分支/标签

    我整个早上都在尝试打开现有的存储库并使用 nodegit 更改分支或标签 文档内容很丰富 但似乎已经过时了 关于我做错了什么有什么想法吗 var NodeGit require nodegit var open NodeGit Reposi
  • gerrit - git(pull、checkout、cherrypick)的用途是什么?

    在 Android 的 gerrit ex 中 link https android review googlesource com c 109934 要下载补丁 我看到4个选项 回购下载 checkout pull 择优挑选 它们之间有什
  • Git 忽略本地文件更改

    我都尝试过 git update index assume unchanged config myconfig and editing git info exclude并添加config myconfig 然而 当我执行 git pull

随机推荐

  • 使用 添加方向 (dir = "rtl")

    我是 html 新手 经常使用希伯来语 我遇到了这个问题 这让我觉得我误解了一些东西 据我所知 该元素没有任何效果 但它确实允许添加样式 但是 尝试这样做 span some text that should be rtl ed span
  • 提示 HINT_PASS_DISTINCT_THROUGH 将 PageRequest 每页返回的实体数量减少到配置的页面大小以下 (PostgreSQL)

    我正在设置一个基于 JPA 规范的存储库实现 该实现利用 jpa 规范 基于 RSQL 过滤器字符串构建 来过滤结果 定义结果排序并通过 不同 删除任何重复项 否则这些重复项将因连接表而返回 JPA 规范构建器方法连接多个表并设置 不同 标
  • 计算 Linux 目录中的文件数量? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要计算目录中的文件数量 我通常使用 ls directory wc l 但是还有另一个命令不使用wc 这是一 ls l egrep c N
  • 如何使用 SQL 数据库中的纬度和经度查找最近的位置?

    我想从以下数据库表中找到最近的位置 Address Latitude longitude Kathmandu 44600 Nepal 27 7 85 33333330000005 Los Antoniterstra e 37 09024 9
  • Lua 5.2 问题:lua_pcall 中的“尝试调用 nil 值”

    我在从 C 调用 Lua 5 2 函数时遇到问题 这是 Lua 块 名为 test lua function testFunction print Hello World end 这是 C int iErr 0 Create a lua s
  • IndexError:索引 14708 超出尺寸 295 的轴 0 的范围

    我正在尝试用 yolo 制作对象检测软件 但出现了这个错误 我迷失了方向 谁能帮我 代码不完整 如果这篇文章有任何错误 我很抱歉 因为我是新的 Stackoverflow 该教程来自 Traceback most recent call l
  • 您区分文本编辑器和 IDE 吗?

    我见过一些针对 IDE 问题的回复 其中建议使用文本编辑器 反之亦然 这让我认为人们将它们视为同一件事 我对此做出了明确的区分 如何定义 文本编辑器 和 IDE 您看到这两个工具之间有什么区别吗 请注意 我接受了一个我认为最能解决 文本编辑
  • Rails - 在保存到服务器之前将 DateTime 转换为 UTC

    我不知道如何 但我的控制台和服务器有两个不同的 DateTime now 时区 如果我在控制台中运行 DateTime now 则会返回以下内容 Wed 04 Dec 2013 14 27 23 0500 但是 我的任务模型中有以下内容 d
  • JavaScript 中求和指数

    var total 0 for x 1 x lt 16 x var y x 1 var singleSum Math pow x y Math pow y x total total singleSum document write tot
  • TypeScript 中关联对象数组的接口

    我有一个像这样的对象 var obj key1 apple key2 true key3 123 key n So obj可以包含任意数量的命名键 但值必须全部是字符串 布尔值或数字 我如何声明类型obj作为 TypeScript 中的接口
  • 在 Python 运行时创建对象

    当涉及到在运行时创建对象时 我在理解 OOP 概念时遇到了问题 我研究过的所有教育代码都定义了特定的变量 例如 Bob 并将它们分配给一个新的对象实例 鲍勃 人 我现在无法理解的是如何设计一个在运行时创建新对象的模型 我知道我的措辞可能有错
  • 如何计算日出和日落时间(matlab)?

    我需要在 Matlab 中计算日出和日落时间 但我找不到正确 且简单 的方法来做到这一点 我需要得到与以下内容相同的结果 https www esrl noaa gov gmd grad solcalc https www esrl noa
  • 实现 IEnumerable 时遇到问题

    我正在尝试编写自己的 简单的 List 实现 这就是我到目前为止所做的 using System using System Collections Generic using System Linq using System Text na
  • 限制直接 url 下载图像

    我不久前问过这个问题并得到了我认为可行的答案 但我仍然遇到问题 也许这是我做错的事 但我仍然没有这个权利 我想限制对整个目录的访问 该目录中包含图像和 pdf 文件 我需要创建 pdf 文档的链接并将图像嵌入到锚标记中 有人告诉我为此使用标
  • 将多个属性元数据添加到工作流活动中的依赖属性

    我正在 Windows 工作流中构建许多自定义活动 我需要添加一个 DependencyProperty 它可以list该属性的多个值 用户可以在使用活动时选择这些值 例如对或错 我知道如何使用 PropertyMetadata 简单地传递
  • 使用 JavaScript 循环遍历日期范围

    给定两个Date 对象 其中一个小于另一个 我如何在日期之间每天循环 for loopDate startDate loopDate lt endDate loopDate 1 这种循环会起作用吗 但是如何向循环计数器添加一天呢 Thank
  • ngOnInit 中未定义角度异步输入?

    我有一个父组件通过 API 将数据传递给子组件 如下所示 ts private loadData this data this apiService getData html
  • 在 Scala 中实现多级 Java 接口

    我有以下层次结构java for my interface public interface Identifiable
  • 在 ng-click 上调用超出范围的 javascript 函数

    我有一个 javascript 库 其中包含许多有用的函数 我在网站上使用它们来执行各种操作 我知道我无法通过 ng click 访问这些函数 因为这些函数超出了范围 有没有一种方法可以访问它们 而无需声明仅调用库中函数的作用域函数 Her
  • 如何从合并中排除文件?

    我刚刚开始了解 git 目前正在考虑合并 假设我有一个主分支 并创建一个名为子分支的分支 我在子分支上工作并更改了一些文件 现在我想将这个子分支合并到主分支中 git merge child 然而 子分支中有一些文件 也在主分支中 我不想合