热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Git强制合并

如何解决《Git强制合并》经验,为你挑选了1个好方法。

我想知道我应该怎么做才能从dev分支强制合并到我的master分支?使用“ git merge dev”会导致很多冲突。但是,我不想单独处理它们。相反,我只是想使用我的dev分支中的所有文件并将其合并到master中。但是这种“强制合并”并不像我想的那么容易。有人可以指出我正确的方向吗?



1> Mark Adelsbe..:

我只想使用我的dev分支中的所有文件

如果您是想使用dev分支中的所有文件-即master应该撤消分支分支以来在分支上所做的任何更改-那么有两种方法。

合并-s我们的

你可以

git checkout dev
git merge -s ours master
git checkout master
git merge dev

这有点绕圈,因为没有“他们的”策略。(默认的合并策略有一个“其”策略选项,但是master只要它们与from的更改不冲突,它仍会尝试应用from dev;如果您想要的只是保留dev版本,那不会因此,您可以使用该ours策略在所有文件的版本之间master以及devdev所有文件的版本之间创建合并提交,然后快速进行master合并。

这意味着在合并提交时,父级的顺序将被颠倒,这通常是您不会注意到的,但是在某些情况下(例如,如果您使用--first-parent日志或其他方式)可能会很重要。

提交树

如果父母的顺序很重要,则可以诉诸管道命令 commit-tree

git checkout master
git merge $(git commit-tree dev -p master -p dev -m "merging dev over master")

历史重写

上述方法的潜在缺点是它们会产生可能不直观的合并提交,因为其结果会忽略合并一侧的更改(而合并预计会合并两侧的更改)。由于您的合并在正常策略下会发生冲突,因此它并没有什么大问题,但是仍然有人将其归类为“恶意合并”。如果要避免这种情况,另一个选择是重写历史记录。

这也不利,特别是如果您使用此存储库与其他开发人员进行协作。您可以在git rebase文档中的“从上游基准恢复中”下阅读有关该问题(以及通常如何解决)的信息。(虽然文档将问题称为“上游重新设置”,但实际上适用于共享分支的任何历史记录重写。)

如果您认为历史记录重写是有意义的,那么最简单的事情就是移动master分支,使其指向与相同的提交dev

git checkout dev
git branch -f master


推荐阅读
  • 初始化初始化本地空版本库,仓库,英文名repositorymkdirtest&&cdtestgitinit克隆项目到本地gitclone远程同 ... [详细]
  • 记一次git的版本回退
    背景本地有个项目已经修改了很久(是自己的小项目不是公司的),文件挺多的,还有大量的log文件。一些资源文件是中文名,工作区修改后使用了命令gitadd.本来在.gitignore文 ... [详细]
  • git 提交代码命令_Git命令可视化展示,代码管理再也不愁了,建议收藏!
    本文翻译自LydiaHallie的博客:https:dev.tolydiahalliecs-visualized-useful-git-commands-37p1gi ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • Git GitHub多人协作
    在学校做一个小项目需要多人协作,就用到了gitHub,百度了一下多数写得乱七八糟或者支离破碎,于是总结了一下自己的步骤如下,第一次使用GitHUb,哪里不对望大神指出一.前期准备: ... [详细]
  • git向远程仓库提交遇到的各种坑
    **码云***gitinit初始化本地仓库gitinit*gitremoteaddorigingitgithub.com:xueqinngchennLocal-agent.git将 ... [详细]
  • 如何在vscode中使用GitLab我同广大码友们一样,好不容易赶上了个节假日,回到家一顿安排,可屁股还没坐热就接到线上紧急BUG需要修复 ... [详细]
  • 注意:尽量不要直接gitpull,因为gitpull会隐藏一些中间细节,它会直接将远程主机的最新内容合并到当前分支,建议使用 ... [详细]
  •    在用svn的时候,我们通常会使用下面的目录结构   projectname      -head      - ... [详细]
  • git基本用法教程(fork软件+git命令)
    git基本用法教 ... [详细]
  • ios原生骨架库,网络过渡动画封装
    最新版2.0.5,release版本目录关于TABAnimated实现原理优点演变过程效果图安装使用Cocoapods手动导入使用步骤扩展回调Tips属性相关强调最后关于TABAn ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 起因之前,我写过一篇文章:在GitHub上fork项目后,如何与原仓库同步?图解全过程,介绍如何在自己for ... [详细]
  • Ubuntu下本地仓库项目上传至github远程仓库
    纯属个人笔记,参考了多篇其他资料,仅供参考。该方法对Ubuntu14.04和16.04都适用。初次使用Git的设置如果初始化配置已经在之前弄过的可以直接跳过这一部分至push ... [详细]
author-avatar
南和东
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有