以上所有选项都将提示您解决合并冲突。 如果要合并为团队提交的更改,则很难解决开发人员的合并冲突并继续进行。 但是,“git merge”将一次性完成合并,但您无法通过一系列修订作为参数。 我们必须使用“git diff”和“git apply”命令来进行转速的合并范围。 我观察到如果补丁文件包含太多文件的差异,“git apply”将失败,因此我们必须为每个文件创建一个补丁然后应用。 请注意,该脚本将无法删除源分支中删除的文件。 这是一种罕见的情况,您可以从目标分支手动删除此类文件。 如果它不能应用补丁,“git apply”的退出状态不为零,但是如果你使用-3way选项,它将回退到3路合并,你不必担心这个失败。

下面是脚本。

enter code here

#!/bin/bash

# This script will merge the diff between two git revisions to checked out branch

# Make sure to cd to git source area and checkout the target branch

# Make sure that checked out branch is clean run "git reset --hard HEAD"

START=$1

END=$2

echo Start version: $START

echo End version: $END

mkdir -p ~/temp

echo > /tmp/status

#get files

git --no-pager diff --name-only ${START}..${END} > ~/temp/files

echo > ~/temp/error.log

# merge every file

for file in `cat ~/temp/files`

do

git --no-pager diff --binary ${START}..${END} $file > ~/temp/git-diff

if [ $? -ne 0 ]

then

# Diff usually fail if the file got deleted

echo Skipping the merge: git diff command failed for $file >> ~/temp/error.log

echo Skipping the merge: git diff command failed for $file

echo "STATUS: FAILED $file" >> /tmp/status

echo "STATUS: FAILED $file"

# skip the merge for this file and continue the merge for others

rm -f ~/temp/git-diff

continue

fi

git apply --ignore-space-change --ignore-whitespace --3way --allow-binary-replacement ~/temp/git-diff

if [ $? -ne 0 ]

then

# apply failed, but it will fall back to 3-way merge, you can ignore this failure

echo "git apply command filed for $file"

fi

echo

STATUS=`git status -s $file`

if [ ! "$STATUS" ]

then

# status is null if the merged diffs are already present in the target file

echo "STATUS:NOT_MERGED $file"

echo "STATUS: NOT_MERGED $file$" >> /tmp/status

else

# 3 way merge is successful

echo STATUS: $STATUS

echo "STATUS: $STATUS" >> /tmp/status

fi

done

echo GIT merge failed for below listed files

cat ~/temp/error.log

echo "Git merge status per file is available in /tmp/status"

git如何选择性合并_git - 如何挑选一系列提交并合并到另一个分支?相关推荐

  1. 最实用的Git命令总结:新建本地分支、远程分支、关联和取消关联分支、清除本地和远程分支、合并分支、版本还原、tag命令、中文乱码解决方案、如何fork一个分支和修改后发起合并请求

    1.常用命令git.tag整理 1.新建分支本地分支 git branch <branch-name>远程分支 git push origin <branch-name>:&l ...

  2. git status怎么操作_git操作-方向对了,就不怕路远了!-51CTO博客

    git介绍 与svn不同的是,svn是集中式管理,当自己主机上修改了文件,必须提交到服务器,其他人才能提交,不然冲突 git是自己本机也可以作为仓库,也有当做服务器,分布式管理 安装: bash-co ...

  3. git如何选择性合并_Git分支合并选择

    用Git进行多人协作开发时,必然会合并代码,解决冲突.然而合并代码也是需要点技巧的,如果对一些关键命令没有理解去使用的话,git的版本演进路线就会变得很乱,从而造成了日后维护的一些麻烦. Git上合并 ...

  4. git如何合并指定文件内容_Git合并指定文件到另一个分支

    经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...

  5. git如何选择性合并_小姐姐用 10 张动图,教会你 Git 命令使用

    优质文章,第一时间送达! 来源:机器之心 git merge.git rebase.git reset.git revert.git fetch.git pull.git reflog--你知道这些 ...

  6. Git合并指定commits到另一个分支

    场景 有时候我们在多分支并行开发时,经常碰到开发分支的bugfix需要合入之前的版本或其他分支中.有时候你需要这样做,只合并你需要的那些commits,不需要的commits就不合并进去了. 处理办法 ...

  7. Git:合并特定commits 到另一个分支

    经常被问到如何从一个分支合并特定的commits到另一个分支.有时候你需要这样做,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用g ...

  8. git如何添加远程主机_Git远程操作详解

    Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...

  9. 本地git存储库关闭_Git 入门:术语基础 | Linux 中国

    想学习 Git?看看这个最重要的术语和命令的快速总结. • 来源:linux.cn • 作者:Matthew Broberg • 译者:Xingyu.Wang • (本文字数:4793,阅读时长大约: ...

  10. git fetch和git pull的区别_Git实战(实验楼)学习笔记 实验2 基本用法(下)

    一.实验介绍 本节实验为 Git 入门第二个实验,继续练习最常用的 Git 命令. 知识点 对比差异 分布式的工作流程 Git 标签 实验环境 实验环境为 Ubuntu Linux 命令行环境,需要了 ...

最新文章

  1. java 随机数 平均值_从平均值,变异系数生成对数正态分布随机数
  2. 为什么中国的程序员技术偏低
  3. java程序编写九九乘法表_用面向对象的方法编写的九九乘法表java代码的编写
  4. linq 查询的结果会开辟新的内存吗?
  5. arcgis python实例_ArcGIS Python编程案例(14)-五个常用Python处理任务
  6. LeetCode 题 - 66. 列表元素加一 python实现
  7. 梯度下降法-深度AI
  8. 古根海姆CIO Scott Minerd:加密货币为 “郁金香狂热“
  9. scrapy工作流程
  10. nankai 2082: 靶形数独 数独(9*9)求所有解 DLX+精确覆盖
  11. Spring核心--容器详解
  12. 设备零线地线短路维修
  13. Element 中时间选择器配置 本月 及 上个月 快捷方式
  14. Webots+ROS学习记录(4)——六轮全地形移动机器人
  15. 拼多多商品详情接口,拼多多详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,拼多多APP详情
  16. 利用Python爬取金十数据新闻事件
  17. 莽莽昆仑开鸿蒙,中国科技人,那些“芳心纵火犯”
  18. macbookair安装linux
  19. php加解密工具php_screw-1.5_php5.3支持php5.3以上版本
  20. 红绿灯通行规则的图解

热门文章

  1. mac触控板 鼠标中键_如何使用触控板,鼠标或键盘在任何Mac上单击鼠标右键
  2. 刷屏专用超长复制_求超长的刷屏文字
  3. 【JavaScript】- forEach的用法
  4. 掌握 JS 高级编程基础 - Reflect Metadata
  5. Web—13-判断网站请求来自手机还是pc浏览器
  6. 【Derivation】 条件数学期望公式泊松分布推导(Poisson distribution)
  7. centos7时间校准
  8. 英语学习软件——《经典双语广告语大全》(图)
  9. HTAP的下一步?SoTP初探(上):从“大”数据到“小”而“宽”数据
  10. DDOS攻击是什么意思?服务器怎么防DDOS攻击?