以上所有选项都将提示您解决合并冲突。 如果要合并为团队提交的更改,则很难解决开发人员的合并冲突并继续进行。 但是,“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. 深度学习之Pytorch基础教程!
  2. Spring中的BeanPostProcessor接口
  3. 超级计算机性能调查,调查:多数超级计算机使用Linux操作系统
  4. Hough直线检测的理解
  5. LINQ体验(6)——LINQ语句之Join和Order By
  6. SpringCloud Gateway配置自定义路由404坑
  7. Linux-(C/C++)生成并使用静态库/动态库
  8. SMTP 错误代码大全
  9. UI设计灵感|仪表盘界面如何设计?优质案例给你帮助
  10. 异常处理汇总-运维系列
  11. [SQL实战]之获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
  12. 新入职朋友说话时,一定不要用“你们”,用“咱们”
  13. #金项奖获奖项目专题# | 京东闪付---快人一步
  14. STM32F103驱动THM3060读取二代身份证
  15. Ubuntu 18.04 DNS解析失败
  16. 调用微信二维码识别开源库
  17. 34. 实战:基于某api实现歌曲检索与下载(附完整源代码)
  18. Tableau-盒须图
  19. 醒醒吧!高科技运动手环无法帮你减肥
  20. 【附源码】计算机毕业设计java医院药品进销存系统设计与实现

热门文章

  1. 由iconfont引起的svg、ttf、woff、woff2图标的研究及转换(svgs2fonts)
  2. Table表格边框线、样式
  3. 【科研分享】推荐系统SCI顶会及顶级期刊 更新于2022-07-13
  4. 服务器上使用nvcc编译多个cu文件,在cmake中使用nvcc编译。cu
  5. linux看磁盘是sas还是sata吗,sas硬盘和sata硬盘区别能用在普通台式机上吗
  6. 如何写简历才能够突显自己的厉害之处?
  7. JAVA后台随机生成一个中文名字
  8. 《跑步该怎么跑》读书笔记
  9. angular2 全局路由守卫_Angular 路由守卫
  10. 目标检测数据集PASCAL VOC详解