Git合并固定分支的某一部分至当前分支
在 Git 中,通常使用 git merge 命令来将一个分支的更改合并到另一个分支。如果你只想合并某个分支的一部分代码,可以使用以下两种方法:
1.批量文件合并
1.1.创建并切换到一个新的临时分支
首先,从要合并的源分支(即要提取代码的分支)中创建并切换到一个新的临时分支。这样可以在该分支上进行修改,以便选择性地合并代码
git checkout -b temp-branch source-branch
- temp-branch 是临时分支的名称
- source-branch 是要提取代码的源分支的名称。
1.2.重置临时分支
使用 git reset 命令来将临时分支重置到源分支的某个特定提交,这样就可以选择性地选择要合并的代码
git reset <commit-hash>
- commit-hash 是源分支中你想要合并代码的特定提交的哈希值
- 如果你只想获取最新提交的哈希值,可以使用 git log 命令的 --oneline 选项,以简化输出
git log --oneline
1.3.添加、提交和推送更改
在临时分支上进行必要的更改,然后将这些更改添加、提交并推送到远程仓库。
git add .
git commit -m "Partial merge from source-branch"
git push origin temp-branch
1.4.合并到目标分支
现在,你可以切换到目标分支,并使用 git merge 命令将临时分支中的更改合并到目标分支中。
git checkout target-branch
git merge temp-branch
1.5.解决可能的冲突
如果有任何冲突,在合并过程中会被提示,并且需要手动解决这些冲突
1.6.删除临时分支
如果你已经成功地合并了临时分支中的部分代码,那么可以将它删除
git branch -d temp-branch
通过以上步骤,你可以在 Git 中选择性地合并某个分支的部分代码到另一个分支中。记得在操作前做好备份,确保不会丢失重要的更改
2.部分文件合并
如果你只想合并分支 A 中的某几个文件到当前分支(假设为目标分支),你可以使用 git checkout 命令来检出分支 A 中的指定文件,然后将这些文件复制到当前分支,最后提交更改。以下是具体的步骤:
2.1.检出分支 A 中的指定文件
git checkout A <path/to/file1> <path/to/file2> ...
- 其中
path/to/file1
,path/to/file2
, 等等是你想要合并的文件的路径。
2.2.将文件复制到当前分支
如果只是简单地想要覆盖当前分支上的对应文件,你可以直接将文件复制到当前工作目录中
2.3.添加、提交更改
添加并提交你所复制的文件到当前分支
git add .
git commit -m "Merge selected files from branch A"
这样就完成了只合并分支 A 中的指定文件到当前分支的操作。需要注意的是,这种方法不会保留分支 A 中的提交历史,它只是将特定文件的最新版本复制到当前分支,并创建一个新的提交。如果需要保留提交历史,你可能需要考虑使用 git cherry-pick 命令来选择性地将分支 A 中的特定提交合并到当前分支
3.git cherry-pick选择性合并文件
git cherry-pick 命令用于选择性地将一个或多个提交从一个分支应用到另一个分支上。这个命令可以用于合并单个提交或一系列提交,而不需要将整个分支合并过来。
3.1.git cherry-pick 的基本用法
git cherry-pick <commit-hash-1> <commit-hash-2> ...
commit-hash-1
commit-hash-2
, 等等是你想要应用的提交的哈希值。
3.2.切换到目标分支
首先,确保你在要应用更改的目标分支上
git checkout target-branch
3.3.应用提交
然后使用 git cherry-pick 命令来应用你想要合并的提交
git cherry-pick <commit-hash-1> <commit-hash-2> ...
这将会将指定的提交应用到当前分支中
3.4.解决冲突
如果在 cherry-pick 过程中出现了冲突,需要手动解决这些冲突
3.5.提交更改
解决冲突后,使用 git commit 来提交这些更改
git commit
如果你只是想要使用默认提交消息,你可以直接运行
git commit
命令,Git
将会使用预设的提交消息。
这样,你就可以使用git cherry-pick
命令将特定提交从一个分支合并到另一个分支中
Git合并固定分支的某一部分至当前分支的更多相关文章
- Git合并特定commits 到另一个分支
https://ariejan.net/2010/06/10/cherry-picking-specific-commits-from-another-branch/ http://blog.csdn ...
- Git合并分支出现的冲突解决
人生不如意之事十有八九,合并分支往往也不是一帆风顺的. 我们准备新的分支newbranch. LV@LV-PC MINGW32 /c/gitskill (master)$ git checkout - ...
- git合并别的分支某次提交或合并
合并别的分支某次提交 master分支上改了一个bug.提交到master分支.现在在dev分支上开发,需要把master分支上改的那个bug合过来.步骤是:先在master分支上查改那个bug的SH ...
- git 合并分支到master
git 合并分支到master 假如我们现在在dev分支上,刚开发完项目,执行了下列命令 git add .git commit -m ‘dev'git push -u origin dev 然后 ...
- Git合并指定一系列commits到另一个分支
Git合并指定文件到另一个分支经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit首先, ...
- Git合并指定文件到另一个分支
经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...
- git合并指定文件到另一分支
经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...
- git合并分支上指定的commit
merge 能够胜任平常大部分的合并需求.但也会遇到某些特殊的情况,例如正在开发一个新的功能,线上说有一个紧急的bug要修复.bug修好了但并不像把仍在开发的新功能代码也提交到线上去.这时候也许想要一 ...
- git使用,多分支合并代码解决冲突,git删除远程分支,删除远程master默认分支方法
git使用,多分支合并代码解决冲突,git删除远程分支,删除远程master默认分支方法提交代码流程:1.先提交代码到自己分支上2.切换到devlop拉取代码合并到当前分支3.合并后有变动的推送到自己 ...
- Git合并分支或者冲突
假设冲突文件是 test/TestCase.php 下面分5种情况讨论. 1.本地不变. 然后远程别人有更新. git pull 这种最简单,没有冲突,本地工作区直接更新 2.我本 ...
随机推荐
- [转帖]tcplife的使用
https://www.rutron.net/posts/2203/bcc-tcplife-usage/ 这篇文档主要演示了 tcplife(Linux eBPF/bcc) 工具的使用. 示例 tcp ...
- [转帖]MySQL Decimal 的实现方法
码: 背景 数字运算在数据库中是很常见的需求, 例如计算数量.重量.价格等, 为了满足各种需求, 数据库系统通常支持精准的数字类型和近似的数字类型. 精准的数字类型包含 int, decimal 等, ...
- [转帖]K8S 挂载 minio csi 的方式.
对象存储 前置条件 安装Minio(在102主机上操作) 安装csi-s3插件(在103主机上操作) 使用 参考 本文介绍kubernetes如何基于对象存储(minio)创建PV与PVC 前置条 ...
- [转帖]elasticsearch8.0以上版本修改内置用户密码
https://www.cnblogs.com/zhang-ding-1314/p/16199682.html 修改密码需要在es启动,并cd到es的bin目录下执行: 1.重置密码并在控制台显示新密 ...
- ipset的学习与使用
ipset的学习与使用 场景说明 虽然可以通过: firewall-cmd --zone=trusted --add-source=$1 --permanent && firewall ...
- [转帖]Linux小知识:sudo su和su的区别
https://www.cnblogs.com/jiading/p/11717388.html su是申请切换root用户,需要申请root用户密码.有些Linux发行版,例如ubuntu,默认没有设 ...
- Oracle 高版本导出到低版本的测试验证
今天验证Oracle 由高版本 备份恢复到低版本 与方神沟通(双 还是他) 说可以使用 version的参数..然后搞一下.. expdp system/Test6530@ora12cr2 schem ...
- Linux无头模式使用mat分析dump的方法
摘要 mat可以很好的进行jvm的内存dump的分析. 但是大部分服务器是没有GUI界面的. 而且就算是有GUI界面也很难直接使用. 但是随着jvm堆区越来越大. WindowsPC机器已经很难进行分 ...
- 记录一次RPC服务有损上线的分析过程
1. 问题背景 某应用在启动完提供JSF服务后,短时间内出现了大量的空指针异常. 分析日志,发现是服务依赖的藏经阁配置数据未加载完成导致.即所谓的有损上线或者是直接发布,当应用启动时,service还 ...
- rel分支合并进入dev分支有冲突怎么处理?
rel分支合并进入dev分支有冲突怎么处理? 切换到本地rel 拉取远端rel 切换本地dev 拉去远端dev git merge rel 会出现冲突 解决后 推送到远端就可以