如何合并二进制文件?

2024-02-02

我的my_branch中有一个二进制文件,当我需要对其进行更改时,git当然不会合并它。

所以我现在做的是:

git checkout my_branch
# make a change to gui.bin
mv gui.bin ~/
git commit -a
mv ~/gui.bin .
git commit -a
# git rebase to 1 commit
git checkout master
git merge my_branch

但有没有更简单的方法呢?


我不太确定你的测试用例的目的是什么。您似乎正在将 gui.bin 移开,然后将其放回原样......

通常,二进制文件不需要合并,您只想从一个地方或另一个地方选择一个最终版本。在真正需要合并它们的地方,您要么需要自定义合并工具,要么使用某种编辑器和大量手动干预。

我注意到你使用commit -a在你的例子中。避免不必要的冲突的第一步是不要提交任何可能被偶然触及的二进制文件,除非您想提交它们。如果你只是git add您需要提交的文件和没有提交的文件-a那么这会有帮助。或者,如果只有一个文件您不想提交,您可以add -u并在提交之前重置它。

git add -u
git reset -- dontcommit.dat
git commit

当您合并同时更改了二进制文件的分支时,您可能希望保留一个版本而不是另一个版本。合并后,git告诉你它们在你的二进制文件中存在冲突,你可以告诉git使用你所在分支中的版本,如下所示:

git checkout --ours binary.dat
git add binary.dat

或者来自您要合并的分支,如下所示:

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

如何合并二进制文件? 的相关文章

  • 我可以用一个命令销毁并重新创建 Git 远程分支吗?

    在 Git 中 我有时会在长期运行的分支上工作 我喜欢时不时地重新建立 master 基础 以便在准备好时使合并变得更容易 变基后 我无法将先前推送的分支推送到远程 因为我的分支的历史记录不再与该分支的远程历史记录一致 所以我必须先删除它
  • 让“git pull”在拉取不同分支时要求确认

    当同时处理许多项目和分支时 我偶尔会犯一些愚蠢的错误 比如拉入错误的分支 例如在分支上master I did git pull origin dangerous code并且有一段时间没有注意到这一点 这个小错误造成了很大的混乱 当我尝试
  • Jenkins 多分支管道 - 在分支中配置属性?

    我们已经使用 Jenkins 多分支管道插件成功设置了构建管道 该插件在大多数情况下都运行良好 但是我们遇到了一个困扰我们的问题 Jenkinsfile包含一组属性 这些属性也显示在 UI 中 但如何为各个分支设置默认值 这就是我们的属性定
  • git push heroku master 通过代理后面的 ssh 出现错误

    简要背景 大家好 我是一名大学生 代理 10 3 100 211 8080 刚接触 ROR Git 和 Heroku 一直在关注 Ruby on Rails 教程 我解决了通过 ssh 推送 git repo 的问题 在我的 ssh con
  • 有什么方法可以有效地应用大型 git 补丁吗?

    我们收到了一个大补丁 修改了大约 17000 个文件 其大小为5 2G 应用补丁时git apply 3 12个小时后还没有完成 我们将每个文件的补丁分成更小的补丁 然后一一应用它们 这样至少我们可以看到进度 再次卡在一个文件补丁上 仍然有
  • 在 github 上查找强制推送的提交者

    在我们的项目 托管在 GitHub 上 中 每隔一段时间就会有人意外强制推送 master 没有人知道是否这样做 我想找出是谁干的 以及背后有什么样的错误配置的工具或坏习惯 那么问题来了 如何识别进行强制推送的用户呢 当我拉动时 我看到这样
  • 如何将推送的分支复制到另一个目录?

    我有一个分支叫master 生产 另一个称为development 当我从 master 推送提交时 post receive 挂钩执行 git work tree var www mywebsite com git dir var rep
  • 如何在Windows Git shell中运行./script.sh?

    也许这很尴尬 但是当我在 Git shell 中工作时 我无法在 Windows 上运行 sh 文件 也许我必须安装一些东西 但我认为 Git 会支持 bash 命令 我知道 Windows 不使用 sh 文件 我正在执行安装步骤游戏结束
  • Git推送更新远程服务器信息失败

    当我尝试将新分支推送到远程源时 出现以下错误 我能够在现有分支上推送提交 并且现有分支上没有问题 git push u origin master1 Fetching remote heads refs refs tags refs hea
  • 提交 ID 从哪里来?

    我只是对此很好奇 提交 ID 不能是随机的 因为它们需要是唯一的 不过 它们似乎是随机的 这让我想知道 为什么它们不只是连续的数字 我的意思是 它们只需要在存储库中是唯一的 对吧 或者我在这里错了 Thanks Git 提交 ID 是 SH
  • 在 VS Code 中找不到 Git

    由于某种原因 我在 Windows 10 笔记本电脑上运行的 VS Code 中找不到 Git 在我的 Mac 上 当你一直向下滚动时 用户默认设置 中会出现一个 Git 但在我的 Windows 10 笔记本电脑上 它根本不存在 源代码管
  • 如何忽略Git中以数字开头的文件?

    在某个文件夹中 我有名为foo jpg bar png等等 我想将它们保留在版本控制中 除了那些命名为1 baz png 2 zaz jpg等 因为它们实际上是生成的 我应该添加什么条目 gitignore 正则表达式如 0 9 似乎不起作
  • Git 提交从 Windows 上的守护程序返回错误 docker/error 响应

    我正在为我的 Laravel 应用程序 BE 运行 docker 我对 readmeme md 文件进行了简单的更新 并尝试将此文件提交并推送到 git 当我尝试提交时 这就是我得到的 gt git c user useConfigOnly
  • 忽略提交之间 git-diff 的*所有*空白更改

    我正在检查代码库并修复空白奇怪之处并通常纠正缩进等事情 并且我想确保我没有无意中进行任何其他更改 所以我正在做git diff w显示所有已更改文件中的差异 同时忽略空白差异 问题是这实际上并没有忽略all空白差异 至少是什么I认为仅仅是空
  • 从 git 签出后 nuget dll 丢失

    I have a C solution containing different projects On those projects I have some normal nuget packages like Newtonsoft Js
  • 将更改恢复到特定提交

    我为自己创建了一个新分支 现在我需要一次将多个提交从主分支恢复到特定提交 我知道有一个安全的命令可以使用git revert no commit COMMIT TO REVERT FROM COMMIT TO REVERT TO 这给了我e
  • 有没有一种方法可以非交互地压缩大量提交?

    我正在尝试压缩一系列提交 HEAD 到 HEAD 3 有没有一种快速的方法可以做到这一点 或者我需要使用 rebase interactive 确保你的工作树是干净的 然后 git reset soft HEAD 3 git commit
  • Git:当文件位于嵌套 git 存储库中时强制“添加”

    我想添加一个包含在父存储库中的嵌套 git 存储库中的文件 我正在开发一个在我的项目中使用的库 然而git add nested repo myfile不做任何事情 我可以尝试重命名 git文件在进行提交时 但是当我重命名回时 我担心会出现
  • 克隆包含所有子模块的 git 存储库

    我有一个工作 git 存储库 其中包含几个子模块 通过克隆不同的存储库获得 现在 我想要复制整个存储库 包含所有子模块 通过使用推送或克隆到另一台机器上的裸 git 存储库 我很高兴失去子模块的历史记录 我只是对保留它们的内容感兴趣 这可能
  • Sourcetree 2.1.2.5 - 显示“未提交的更改”,但没有任何待处理的内容

    我有一个以前没有遇到过的问题 即使我没有什么可提交的 并尝试将我的分支重置为 Sourcetree 显示的最新提交Uncommitted changes 根据 Atlassian 论坛的说法 通常有两个原因 您的工作目录中有很多很多未暂存的

随机推荐

  • 如何获得每个参与者的分配

    我正在努力适应逆高斯分布计算每个参与者的响应时间 以获得每个参与者的分布的 mu 和 lambda 然而 尽管我尝试了很多方法 但它总是为所有参与者提供相同的输出 而不是单独将分布拟合到每个参与者 我已经尝试过以下方法 library go
  • 单元测试是否可以断言某个方法调用了 sys.exit()?

    我有一个有时会调用的 Python 2 7 方法 sys exit 1 是否可以进行单元测试来验证在满足正确条件时调用这行代码 Yes sys exit raises SystemExit 所以你可以检查它assertRaises http
  • 如何重定向 CreateProcess 执行的命令的大量输出?

    我需要从命令行运行 sqlite 备份命令 我不想使用 cmd c 命令是 sqlite3 exe MYDB db dump gt MYDB bak 我找不到任何示例来说明如何执行此操作 到目前为止 我从各种 SO 帖子中收集的代码是这样的
  • 命名 PowerShell 动词的良好准则是什么?

    我还处于 PowerShell 学习的早期阶段 我想知道 Posh 中针对 cmdlet 或高级函数 无论它们在 CTP3 中如何称呼 的动词是否有一些好的指导方针 如果我使用 get 动词 我可以看到很多 但我仍然不确定应该如何布局我的模
  • ImageIO 无法写入 JPEG 文件

    我有一个 BufferedImage 我试图写入 jpeg 文件 但我的 Java 程序抛出异常 我能够成功地将相同的缓冲区保存为 gif 和 png 我尝试在 Google 上寻找解决方案 但没有成功 Code File outputfi
  • 具有断轴和交错颜色条的直方图

    我有这些数据 a b c d e alpha 5 51 0 60 0 12 26 90 76284 53 beta 3 39 0 94 0 17 0 20 0 20 gamma 7 98 3 34 1 41 7 74 28394 93 de
  • AWS RDS实例升级停机时间[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一些关于升级 RDS 实例的问题 将实例从小到大升级时的停机时间是多少 当您更改任何实例类型 小型 大型 超大 时 停机时间是否相对相
  • Spring boot CrudRepo 定义一个bean

    我在 Spring Boot 中遇到有关存储库的问题 我有一项服务 Service userService public class UserServiceImpl implements UserService Autowired priv
  • YouTube 嵌入:不安全的 JavaScript 尝试访问框架

    我们有一个 Wicket 应用程序 其页面包含嵌入的 Youtube 视频 视频嵌入并播放得很好 但显然它导致页面的其余部分无法渲染 似乎 DOM 元素来了after尽管嵌入在标记中 但嵌入根本不会显示在页面上 查看 Chrome 中的错误
  • 如何使用窗口标题启动powershell?

    我有一个批处理文件 允许我根据我的输入转到特定文件夹 d cd d test bits ECHO off cls start ECHO ECHO 1 Perl ECHO 2 Python set choice set p choice ty
  • Firebase 从 vagrant localhost:5000 提供服务

    我在 mac os high Sierra 上运行 vagrant ubuntu 16 04 我已将端口转发和符号链接设置为awesome local com 基本的node js Web应用程序运行完美 可以在指向awesome loca
  • 如何从 IntelliJ 中删除通过 pom.xml 添加的依赖项?

    我将 Spring Security 添加到 pom xml 和 IntelliJ IDEA 中的依赖项中 然后下载它 我检查了 http localhost 8080 并重定向到 http localhost 8080 login 我现在
  • Java支付网关库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找类似于 Rails active merchant 的 Java 支付网关库或许多其他平台上可
  • Node.js 续集关联,包含条件

    是否可以在 findAll 查询的包含数组中传递条件 例如 我有 UsersModel PostsModel 和 UserVotesModel 用户可以对帖子进行投票 对于登录用户 我想查询帖子并仅包含当前用户的投票 我无法使用 Seque
  • 在Notepad++中选择换行符

    我注意到 当我加载文本文件时 Notepad 将识别并使用该文件中的任何换行符 n or r n 是否有一些选项可以让我选择默认情况下用于新文档的选项 我查看了帮助并用谷歌搜索 但找不到任何东西 对于任何新文档 Settings gt Pr
  • 如何用MySQL生成随机字符并插入? [复制]

    这个问题在这里已经有答案了 复制 向 MYSQL 数据库插入随机字符 https stackoverflow com questions 2498310 inserting random characters to mysql databa
  • Django Apache/mod_python 管理 CSS 未与管理表一起出现

    我的 Windows XP Django apache mod python 在本地主机上运行 除了管理 CSS 不渲染之外 所有部分都正常工作 管理员可以工作 但没有 html 格式 我做了补充 settings py INSTALLED
  • 字符串内容相同,但 equals 方法返回 false

    我正在使用 StringEscapeUtils 来转义和取消转义 html 我有以下代码 import org apache commons lang StringEscapeUtils public class EscapeUtils p
  • 如何将二进制数据“按原样”写入注册表(即:我仅将可见的二进制数据作为来自注册表编辑器的字符串)

    我一直在谷歌上搜索这个问题 一整天都没有找到可行的解决方案 我对二进制数据类型一无所知 因为我从来没有故意使用过它们 并且我正在尝试将我在注册表中看到的二进制值写入注册表 现在 我看到的只是以下内容 如下所示 如果我尝试将其作为字符串传递给
  • 如何合并二进制文件?

    我的my branch中有一个二进制文件 当我需要对其进行更改时 git当然不会合并它 所以我现在做的是 git checkout my branch make a change to gui bin mv gui bin git comm