git如何选择性合并_git - 如何挑选一系列提交并合并到另一个分支?
以上所有选项都将提示您解决合并冲突。 如果要合并为团队提交的更改,则很难解决开发人员的合并冲突并继续进行。 但是,“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 - 如何挑选一系列提交并合并到另一个分支?相关推荐
- 最实用的Git命令总结:新建本地分支、远程分支、关联和取消关联分支、清除本地和远程分支、合并分支、版本还原、tag命令、中文乱码解决方案、如何fork一个分支和修改后发起合并请求
1.常用命令git.tag整理 1.新建分支本地分支 git branch <branch-name>远程分支 git push origin <branch-name>:&l ...
- git status怎么操作_git操作-方向对了,就不怕路远了!-51CTO博客
git介绍 与svn不同的是,svn是集中式管理,当自己主机上修改了文件,必须提交到服务器,其他人才能提交,不然冲突 git是自己本机也可以作为仓库,也有当做服务器,分布式管理 安装: bash-co ...
- git如何选择性合并_Git分支合并选择
用Git进行多人协作开发时,必然会合并代码,解决冲突.然而合并代码也是需要点技巧的,如果对一些关键命令没有理解去使用的话,git的版本演进路线就会变得很乱,从而造成了日后维护的一些麻烦. Git上合并 ...
- git如何合并指定文件内容_Git合并指定文件到另一个分支
经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...
- git如何选择性合并_小姐姐用 10 张动图,教会你 Git 命令使用
优质文章,第一时间送达! 来源:机器之心 git merge.git rebase.git reset.git revert.git fetch.git pull.git reflog--你知道这些 ...
- Git合并指定commits到另一个分支
场景 有时候我们在多分支并行开发时,经常碰到开发分支的bugfix需要合入之前的版本或其他分支中.有时候你需要这样做,只合并你需要的那些commits,不需要的commits就不合并进去了. 处理办法 ...
- Git:合并特定commits 到另一个分支
经常被问到如何从一个分支合并特定的commits到另一个分支.有时候你需要这样做,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用g ...
- git如何添加远程主机_Git远程操作详解
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...
- 本地git存储库关闭_Git 入门:术语基础 | Linux 中国
想学习 Git?看看这个最重要的术语和命令的快速总结. • 来源:linux.cn • 作者:Matthew Broberg • 译者:Xingyu.Wang • (本文字数:4793,阅读时长大约: ...
- git fetch和git pull的区别_Git实战(实验楼)学习笔记 实验2 基本用法(下)
一.实验介绍 本节实验为 Git 入门第二个实验,继续练习最常用的 Git 命令. 知识点 对比差异 分布式的工作流程 Git 标签 实验环境 实验环境为 Ubuntu Linux 命令行环境,需要了 ...
最新文章
- java 随机数 平均值_从平均值,变异系数生成对数正态分布随机数
- 为什么中国的程序员技术偏低
- java程序编写九九乘法表_用面向对象的方法编写的九九乘法表java代码的编写
- linq 查询的结果会开辟新的内存吗?
- arcgis python实例_ArcGIS Python编程案例(14)-五个常用Python处理任务
- LeetCode 题 - 66. 列表元素加一 python实现
- 梯度下降法-深度AI
- 古根海姆CIO Scott Minerd:加密货币为 “郁金香狂热“
- scrapy工作流程
- nankai 2082: 靶形数独 数独(9*9)求所有解 DLX+精确覆盖
- Spring核心--容器详解
- 设备零线地线短路维修
- Element 中时间选择器配置 本月 及 上个月 快捷方式
- Webots+ROS学习记录(4)——六轮全地形移动机器人
- 拼多多商品详情接口,拼多多详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,拼多多APP详情
- 利用Python爬取金十数据新闻事件
- 莽莽昆仑开鸿蒙,中国科技人,那些“芳心纵火犯”
- macbookair安装linux
- php加解密工具php_screw-1.5_php5.3支持php5.3以上版本
- 红绿灯通行规则的图解
热门文章
- mac触控板 鼠标中键_如何使用触控板,鼠标或键盘在任何Mac上单击鼠标右键
- 刷屏专用超长复制_求超长的刷屏文字
- 【JavaScript】- forEach的用法
- 掌握 JS 高级编程基础 - Reflect Metadata
- Web—13-判断网站请求来自手机还是pc浏览器
- 【Derivation】 条件数学期望公式泊松分布推导(Poisson distribution)
- centos7时间校准
- 英语学习软件——《经典双语广告语大全》(图)
- HTAP的下一步?SoTP初探(上):从“大”数据到“小”而“宽”数据
- DDOS攻击是什么意思?服务器怎么防DDOS攻击?