Git 合并,不包括从一个分支到另一个分支的提交

2024-03-30

在开发过程中,我经常需要提交和推送“中间”提交,即提交代码不可编译或正在更改某些内容等。我不想进行此类提交,但这是轻松继续我的工作所必需的从办公室到家里,有时其他开发人员可以为他们提供开始工作的基础。

我以为我已经找到了解决这个问题的方法:

  1. 我创建一个单独的“dev”分支并进行所有中间提交。

  2. 一旦代码处于良好状态,就进行合并以掌握。因此,主节点不会包含“中间”提交,而仅包含“正常”提交。

  3. 删除包含所有中间提交的“dev”分支。

但这行不通。当我进行合并时,不仅合并提交包含在 master 中,而且还包含来自“dev”分支的所有“中间”提交。因此,删除“dev”分支不会产生任何影响,其“中间”提交仍保留在那里。

所以问题是:是否有可能以 master 只包含自己的提交 + 合并提交而不包含第二个分支的提交的方式进行合并?如果不可能,您能否建议我如何实现我的目标 - 能够临时保存中间结果,但以后也能无缝删除它们?


当您将“dev”分支合并到 master 时,请尝试

git checkout master
git merge --squash dev
git commit -m "Add new feature."

The --squash选项会将所有中间更改压缩为一个重大更改。

您还可以使用git rebase --interactive如果您需要更多有限的控制(例如,重新排序提交 http://git-scm.com/book/en/Git-Tools-Rewriting-History#Reordering-Commits并做多个小南瓜)。这个答案 https://stackoverflow.com/a/2427520/250168解释了之间的差异git merge --squash and git rebase --interactive.

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

Git 合并,不包括从一个分支到另一个分支的提交 的相关文章

  • 无法变基:以下未跟踪的工作树文件将被合并覆盖

    我正在尝试重新调整我的分支并压缩我的大部分提交 当我这样做时 我收到以下错误 error The following untracked working tree files would be overwritten by merge sr
  • 拉取请求是 Git 的一部分,还是 GitHub、Gerrit 和 Atlassian Stash 等工具的功能?

    Pull 请求似乎是使用 Git 进行代码审查的常用方法 然而 尚不清楚该术语在使用内置函数时是否具有相同的含义 git request pull 或不同的工具 Pull 请求是 Git 的固有功能 还是 GitHub Gerrit 或 A
  • 如何使用 API 和 C# 将文件从 azure DevOps 服务器下载到指定路径

    我正在尝试使用 API 从 azure Devops 服务器下载文件 API 给出了成功响应 但是没有下载任何文件 如果我们删除格式参数 我们将获得带有文件链接的响应 单击该文件不会下载 示例代码 var personalaccesstok
  • 如何为 github 中两个分支之间的单个文件生成差异

    我需要为单个文件生成一个 diff 以显示两个版本之间的差异 这实际上是 github 中的标签 然后我想通过电子邮件将此差异发送给某人 因此差异的 github URL 将是理想的选择 github 比较视图将允许我对所有更改的文件执行此
  • 是否应该在 git 中跟踪 .history 文件夹中的文件[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我进行更改时 history 文件夹中的某些文件在我的状态中都会显示为未跟踪 我将如何控制它 即 make 是自动添加或不添加这些内容 而不
  • 您对版本控制进行到什么程度了? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Git 克隆致命

    我在执行 git clone 时遇到错误 fatal pack has bad object at offset 824775943 inflate returned 1 fatal index pack failed 它仅适用于 Wind
  • 签出现有的远程分支

    我见过不同的方法来检查现有的远程分支 假设我的朋友推送了新分支 bigbug 并且我想签出并将我的本地工作副本切换到该分支 我有以下选项 1 git checkout b bigbug origin bigbug 2 git checkou
  • 在 Windows 上将 Mercurial (hg) 存储库转换为 Git (7)

    我现在真的很沮丧 我有一个现有的 hg 存储库 其中有几个月的编码历史 我想将其放入私有 Github 存储库中 以便我可以从那里对其进行处理 不幸的是我使用的是 Windows 我似乎找不到any转换我实际上可以正常工作的存储库的方法 实
  • 来自 eclipse 的部分 git 提交 (egit)

    假设我有一个有 2 个更改的文件 如何使用 egit 只提交其中之一 命令行版本可以在以下位置找到this https stackoverflow com questions 1085162 commit only part of a fi
  • 在 git 提交消息中使用任何 utf-8 字符是否安全?

    我发现使用 UTF8 字符 例如 很有用 请参阅here http www utf8icons com subsets dingbats 在提交消息中 重构 NewService 添加了更好的服务 OldServiceA 据我所见 它see
  • 如何让 git 和 copSSH 在正确的目录中查找密钥?

    我刚刚安装了 Windows 版 copSSH 当我启动它时 我得到一个目录C copSSH home Nick ssh其中有我的酒吧和私钥 当我通过 Cygwin bash 窗口访问此目录时 使用 ssh 用户 主机 我很高兴地登录了 但
  • git for-each-ref - 按年龄过滤结果

    我正在使用以下命令here https stackoverflow com a 39251131 5812876 git for each ref format color cyan authordate format m d Y I M
  • 无法将 git add origin git@anything 与新的 git 目录一起使用

    我有一个项目 我正在生成许多提交 因此它占用的空间正在快速增长 由于我有一个 gitlab 页面来推送提交 因此我决定最好删除本地 git 目录中的这些旧提交 因为我始终可以从 gitlab 获取它们 为此 我只需删除本地 git 目录 然
  • 如何使用“gem install”命令从私有 GitHub 存储库安装 gem

    如何在本地安装托管在 GitHub 上的私人存储库中的 gem 特别是 我们通过gem install命令而不是在 Bundler 中使用 因为它是一个命令行工具 我尝试这样做 gem install githubname repo s h
  • Git 在推送代码时返回错误 403 [重复]

    这个问题在这里已经有答案了 一切都工作正常 直到我创建了一个新的 GitHub 帐户 当我尝试使用新帐户第一次将代码推送到 github 服务器时 出现以下错误 remote Permission to NEW USER NEW REPO
  • 如何使用 sourceTree 进行推送?

    我正在使用 sourceTree 管理 Unity 项目 版本 4 6 3 我只是想返回到上一次提交 右键选择 将当前分支重置到此提交 在使用模式中选择 硬 然后放回上一次提交 之后 我尝试去推 但没有成功 抱歉 当时我忘记了错误 之后 我
  • 如何将普通的 Git 存储库转换为裸存储库?

    如何将 普通 Git 存储库转换为裸存储库 主要区别似乎是 在普通的 Git 存储库中 你有一个 git存储库内的文件夹 包含构成工作副本的所有相关数据和所有其他文件 在裸露的 Git 存储库中 没有工作副本和文件夹 我们称之为repo g
  • 如何通过哈希显示提交的日期和时间

    I used git reflog识别我创建特定分支时的哈希值 我得到了哈希值fe1ddcdef 我还没有将此分支推送到远程 我现在正在尝试查找日期和时间fe1ddcdef发生 git reflog只告诉我 fe1ddcdef HEAD 1
  • 如何查看 github 的 SSH 密钥?

    我最近收到一封来自 Github 的电子邮件 要求我检查我的 SSH 密钥 请检查您的钥匙并确保您 认出他们 如果您有任何疑问 请拒绝钥匙并 上传新密钥 如何在 ubuntu 11 10 上使用 git 检查我的密钥 您可以按照 GitHu

随机推荐

  • SQL Developer 清除脚本中的绑定变量

    我正在编写一个脚本 其中多个后续过程需要一个过程的输出 所以 我需要绑定变量 而不是替换变量 但是 每当使用该变量时 它就会被清除 这使得不可能多次使用变量的值 完全相同的脚本在 SQL Plus 中运行 我在下面制作了一个简短的脚本来演示
  • 警告:“继续”目标开关相当于“中断”。您的意思是使用“继续2”吗?

    我有 php7 3 和 symfony2 8 当我尝试使用控制台创建类时 出现此错误 Symfony Component Debug Exception ContextErrorException 警告 继续 目标开关相当于 中断 你的意思
  • 如何在kubernetes中指定Proxy Pass

    我的资产在 s3 上 我的服务部署在 kubernetes 上 是否可以在 nginx ingress conf 中定义代理传递 我当前的 nginx proxy pass 资产到 s3 我想在 kubernetes 中复制 locatio
  • 注册成功后如何分配角色?

    我正在使用 fos 用户捆绑包和 pugx 多用户捆绑包 我已阅读所有文档 并且我是 Symfony 的新手 在 pugx 多用户捆绑包中 每个点都有一个示例 但只有一个 成功注册 覆盖控制器的示例生成表格 gt 好的 覆盖模板的示例生成表
  • 为什么 Actor.receive 是偏函数?

    Why is Actor receive部分功能 我总是可以使用带有匹配表达式的正则函数来代替它 It is a PartialFunction捕获消息被处理或未处理的可能性Actor 未处理的消息将 不让演员失败MatchError 产卵
  • Laravel eloquent 获取数据库列中最常见的值

    从一个表animals我有以下值animal name column cat dog cat 我想从中提取 猫 这个词 因为它是该专栏中最流行 最常用的词 我如何使用 laravel eloquent 做到这一点 雄辩 App Animal
  • java.lang.String 类型中没有由 @DynamoDBHashKey 注释的方法或字段

    我不知道为什么不运行这个项目 Data DynamoDBTable tableName tableName public class entityName implements Serializable private static fin
  • 使用 JavaScript 将当前日期放入 PDF 表单的文本字段中

    我喜欢创建一个 PDF 打印时包含打印的日期和时间 因为实际更改 PDF 内容需要 PDF 编辑器 所以我认为使用 PDF 表单 即包含可填写表单的 PDF 其中一个文本字段会在打印 PDF 时自动更新为当前日期和时间 PDF 的实际创建不
  • 仅 Grep 第一个匹配项并停止

    我正在使用 grep 递归搜索目录 并使用以下参数希望只返回第一个匹配项 不幸的是 它返回了不止一个 事实上 我上次查看时返回了两个 似乎我有太多的争论 尤其是没有得到想要的结果 grep o a m 1 h r Pulsanti Oper
  • IO 的“最佳”ExecutionContext

    我的 Scala 代码中有一些同步调用 我将它们包装在阻塞 上下文中 然后包装在 Future Future blocking syncCall 中 但我不知道要使用哪种类型的 ExecutionContext 我知道可能有很多可能性 并且
  • 如何更正此错误:未找到数据源名称且未指定默认驱动程序

    我有一个在 Windows 服务器上运行的网站 它运行得很好 我尝试在本地主机中进行复制 但收到错误 Warning odbc connect function odbc connect SQL error Microsoft ODBC D
  • 通过网络发送的数据的字符串压缩/解压缩[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 中的字符串压缩方法 可以在将数据字符串写入网络套接字之前对其运行 我对任何类型的压缩都相当陌生 因此我在这里寻求一些建议
  • GitHub 中的发布到底是什么?

    究竟是什么 它是用来做什么的 使用范围有多广泛 通常如何使用 来自官方GitHub https help github com articles about releases Releases are GitHub s打包并向用户提供软件的
  • 替换每列的最大值

    我有一个矩阵 我想用 1 替换每列的最大值 我怎样才能在R中做到这一点 我试过 set seed 14 mat lt matrix sample 10 20 replace TRUE nr 5 apply mat 2 which max 1
  • 为什么 false == "false" 是假的?

    我仍在学习 javaScript 的基础知识 我不明白为什么会发生这种情况 有类型强制false false 将转换为 false false true or false false true So why false false 是假的吗
  • JQMIGRATE:jQuery.fn.attr('selected') 可以使用属性而不是属性

    operatordelivery attr checked true 您好 我目前正在将 jQuery 版本迁移到 jQuery 2 1 1 我可以在控制台中看到警告JQMIGRATE jQuery fn attr selected may
  • 使用 Jsoup 提取 Span 标签数据

    我正在尝试使用 Jsoup 提取 html 中的特定内容 下面是示例 html 内容 div class shop section line bmargin10 tmargin10 div class price section fksk
  • Android 无法禁用剪切复制粘贴

    我无法禁用复制粘贴选项 在三星 Galaxy S2 上 如果我单击编辑文本 则会出现一个箭头 单击该箭头时 所有选项都会出现 onCreateContextMenu 尚未被调用 在 onUserInteration 中 我只是使用 setT
  • 如何在 gtk2hs 中的事件处理程序之间传递状态

    我正在尝试制作一个玩具应用程序 只是为了了解如何在 Haskell 中编写事件驱动程序 我想做的是在画布上画一条线 每次按下按键时该线都会向前移动 所以它有点像文本编辑器中的原始光标 我的问题是我无法找出计算用户按键次数的最佳方法 显然我不
  • Git 合并,不包括从一个分支到另一个分支的提交

    在开发过程中 我经常需要提交和推送 中间 提交 即提交代码不可编译或正在更改某些内容等 我不想进行此类提交 但这是轻松继续我的工作所必需的从办公室到家里 有时其他开发人员可以为他们提供开始工作的基础 我以为我已经找到了解决这个问题的方法 我