当前位置: 首页 > 面试题库 >

自动合并2个git分支的脚本?

蔡晨
2023-03-14
问题内容

我的git仓库有2个分支:master和development。我想要一个脚本,该脚本可以自动合并从开发到母版的所有更改。

我使用了Jenkins:Git插件会克隆存储库,然后运行以下脚本(“ version”变量是job参数):

# merge
git checkout -b develop origin/develop
git checkout master
git merge -Xtheirs --squash develop -m "v${version}"

# commit
git commit -m "v${version}"

# tag
git tag v${version} -m "v${version}"

# push
git push origin v${version}

我在测试存储库上尝试了它,但失败了:

git merge -Xtheirs开发
CONFLICT(删除/修改):在develop中删除test.txt,在HEAD中修改。test.txt的版本HEAD留在树中。
自动合并失败;解决冲突,然后提交结果。

如何 自动 解决此冲突?我希望脚本始终根据’develop’分支添加/修改/删除文件,因为无论如何都不会碰到master …


问题答案:

-X theirs合并策略仅适用于文件中解决冲突的帅哥。这些选项的文档中的git- merge手册页:

      ours
           This option forces conflicting hunks to be auto-resolved
           cleanly by favoring our version. Changes from the other tree
           that do not conflict with our side are reflected to the merge
           result.

           This should not be confused with the ours merge strategy, which
           does not even look at what the other tree contains at all. It
           discards everything the other tree did, declaring our history
           contains all that happened in it.

       theirs
           This is opposite of ours.

在这种情况下,一个分支删除了文件,而另一个分支修改了文件,这与进行了不同修改的两个分支之间的简单冲突是截然不同的。



 类似资料:
  • 我们将尝试在github中创建一个工作流,其中每个票据都是master的分支 票据完成后,工作将合并到暂存中,在暂存中执行回归和集成测试,然后将其合并到主控中。 一个团队领导提出了合并后旧票分支的问题。 我发现了这个脚本,想知道它是否能在我们的环境中工作。我们只想删除已经合并到主目录中的分支。

  • 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤: 开发某个网站。 为实现某个新的需求,创建一个分支。 在这个分支上开展工作。 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理: 切换到你的线上分支(production branch)。 为这个紧急任务新建一个分支,并在其中修复它。 在测试通过之后,切换回线上

  • 问题内容: 如何在jenkins构建之前自动合并git分支我有2个构建,分别用于分支母版和生产 当我进行生产构建时,我想做git merge origin / master。 问题答案: Jenkins上最新的Git插件对此提供了支持。只需在作业配置的Git的高级设置下将“结帐/合并到本地分支”设置为“生产”即可。然后将“要构建的分支”设置为“ master”,或者将其保留为空白以让Jenkins

  • 本文向大家介绍Ruby实现的删除已经合并的git分支脚本分享,包括了Ruby实现的删除已经合并的git分支脚本分享的使用技巧和注意事项,需要的朋友参考一下 使用Git管理代码工程,着实方便了很多,但是当做完feature分支或者完成hotfix之后,总是忘记删除这些无用的分支,一个一个地删除着实麻烦,重复手工劳动不符合程序员的风格,于是写了一个简单的脚本。一键删除那些不需要的分支,让多余的干扰信息

  • 问题内容: 我们目前有一个使用的詹金斯管道。每个git分支都执行一个声纳分析,使用该属性创建一个声纳项目 。这是非常有用的,因为在合并每个分支之前都会对其进行分析,当一个分支与master合并并在GIT上消失时,该问题就会出现,该项目将继续在sonarqube上进行,并且需要手动删除。有没有办法自动做到这一点?或其他任何建议? 问题答案: 您可以定义以下方法来执行此工作,然后根据需要或在诸如合并/

  • 问题内容: 我正在寻找一种自动将Master分支合并到一个或多个开发分支的方法。换句话说,我想在多个项目中每天将团队开发部门与Master同步。 我一直在考虑使用Jenkins,但经验不足。Jenkins是否可以通过添加多个存储库URL,然后在配置中指定“合并到的分支”来提供此功能?与合并问题相比,我不太关心项目的构建。詹金斯将如何应对失败的合并? 詹金斯会很理想,但是如果有其他方法,我很想听听。