使用idea 将一个git分支的部分记录合并到git另一个分支

场景:

        有多个版本分支,需要将其中一个分支的某一两次提交合并到指定分支上

        eg: 将v1.0.0分支中指定提交记录 合并到 v1.0.1分支中

操作:

      步骤一 
         idea切换项目分支到v1.0.1(需要合并到哪个分支就先站到哪个分支上)
      步骤二 
        在idea 中 找到git 的提交记录

        步骤三: 选中需要合并的记录,点击cherry-pick 按钮

如果需要合并多次提交记录,则需要选中多次 然后点击Cherry-Pick、可能会有冲突,有冲突就先解决冲突问题

        步骤四: 提交

步骤五 最终提交到远程仓库

总结:

       1. 切到待提交即目标分支->2.找到对应分支即原分支提交记录->3.点击Cherry-Pick->4.push 

参考文章

git分支合并制定内容

### 如何在 IntelliJ IDEA 中将一个 Git 分支的代码合并一个分支 在 IntelliJ IDEA 中执行 `git merge` 操作可以轻松地将一个分支的更改合并一个分支。以下是具体实现方式以及注意事项: #### 1. 切换到目标分支 首先需要切换到要接收其他分支更改的目标分支。可以通过以下步骤完成: - 打开 **Git 工具窗口**(通常位于右侧边栏,如果没有显示,可以选择菜单中的 `View -> Tool Windows -> Version Control` 或者快捷键 `Alt + 9`)。 - 在工具窗口顶部找到当前分支名称,并点击下拉箭头选择目标分支[^4]。 如果目标分支不存在于本地,则需要通过命令行或者 IDE 的功能将其检出为本地分支: ```bash git checkout -b target_branch_name origin/target_branch_name ``` #### 2. 开始合并操作 当已经处于目标分支时,可以启动合并过程: - 右击项目根目录,在上下文菜单中选择 `Git -> Merge Changes...`。 - 出现对话框后,会列出所有可被合并的远程或本地分支列表;从中挑选源分支(即希望其变更应用于此处的那个分支),然后确认选项[^1]。 #### 3. 解决冲突 (如有必要) 如果有任何文件存在修改上的差异而无法自动处理的话,IDE 将提示发生冲突。这时需手动编辑这些有争议的部分直到消除分歧为止——双击受影响项即可进入内置比较器查看不同版本之间的区别[^2]。完成后标记该文件已解决冲突状态(`Mark as Resolved`)再继续下一步骤。 #### 4. 提交合并结果 一旦成功解决了所有的潜在问题或是没有遇到任何阻碍顺利完成了融合工作之后,记得最后一步就是提交这次特殊的变动记录: - 如果一切正常无误,应该能看到一个新的commit节点代表着此次merge action. - 使用IDE自带的功能去填写合适的message描述信息关于本次合入的内容概览等细节说明[^3]. ```python def perform_git_merge(target_branch: str, source_branch: str): """ Perform a git merge operation from source branch into target branch using command line. Args: target_branch (str): The name of the branch that will receive changes. source_branch (str): The name of the branch whose changes are being merged. Returns: None """ import subprocess try: # Checkout to the target branch subprocess.run(["git", "checkout", target_branch], check=True) # Execute the merge process with given source branch result = subprocess.run( ["git", "merge", "--no-commit", "--no-ff", source_branch], capture_output=True, text=True ) if "CONFLICT" in result.stdout or "fatal" in result.stderr: raise Exception("Merge conflicts detected.") print(f"Merged {source_branch} into {target_branch}. Resolve any conflicts and complete the merge manually.") except subprocess.CalledProcessError as e: print(e.output) perform_git_merge('main', 'feature/new-ui') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值