当前位置: 首页 > article >正文

【Git】解决分支冲突、分支合并、版本回退、版本管理

解决本地冲突

1. 合并分支

假设你正在 main 分支上,想要合并 feature 分支。

git checkout main
git merge feature

如果两个分支都对同一文件做了不同的修改,Git 会提示你有冲突,并显示冲突文件。

2. 查看冲突文件

使用以下命令查看冲突状态:

git status

输出中会显示“unmerged paths”,并列出冲突的文件。

3. 手动解决冲突

打开冲突文件,查找冲突标记:

<<<<<<< HEAD
当前分支的内容
=======
合并分支的内容
>>>>>>> feature

选择合适的内容,删除标记后保存文件。

4. 标记冲突已解决

使用以下命令将已解决的文件添加到暂存区:

git add <冲突文件名>
5. 提交合并

完成合并后,提交更改:

git commit -m "Resolved merge conflict between main and feature"

解决远程冲突

1. 拉取远程更新

当你从远程仓库拉取更改时,如果本地也有未提交的更改,可能会出现冲突。

git pull origin main

如果有冲突,Git 会提示并显示冲突文件。

2. 查看冲突文件

同样使用:

git status
3. 手动解决冲突

和本地冲突一样,打开冲突文件,解决冲突标记。

4. 标记冲突已解决

添加已解决的文件:

git add <冲突文件名>
5. 提交更改

提交合并:

git commit -m "Resolved merge conflict after pulling from remote"
6. 推送更改到远程

最后,将更改推送到远程仓库:

git push origin main

总结

无论是本地冲突还是远程冲突,步骤都是类似的。主要是:

  1. 尝试合并或拉取更改。
  2. 检查冲突文件。
  3. 手动解决冲突。
  4. 标记解决后的文件并提交。

2. 分支合并

合并命令:
git checkout main
git merge feature
  • 如果不需要保留历史
    git merge --squash feature
    

3. 版本回退

回退到某个提交:
  1. 查看提交历史

    git log --oneline
    
  2. 选择提交后回退

    git reset --hard <commit_hash>  # 永久回退
    

    或者

    git reset --soft <commit_hash>  # 保留文件变更
    
使用 revert
git revert <commit_hash>  # 创建一个新的提交来撤销某个提交

4. 版本管理

查看提交历史:
git log --oneline --graph
创建标签:
git tag -a v1.0 -m "Version 1.0"
推送标签到远程:
git push origin v1.0

5. 删除分支

删除本地分支:
git branch -d feature  # 删除已合并的分支
git branch -D feature  # 强制删除未合并的分支
删除远程分支:
git push origin --delete feature

http://www.kler.cn/news/367710.html

相关文章:

  • 研究生论文学习记录
  • C#文件内容检索的功能
  • MySQL-事务隔离级别
  • 15分钟学 Go 小项目:Web API
  • 家政服务管理系统小程序ssm+论文源码调试讲解
  • 强大!Spring Boot 3.3 集成 PDFBox 轻松实现电子签章功能!
  • 其实程序和人生是一样:顺序中夹杂着循环,伴随一次次选择不断成长
  • 10.23工作感悟
  • 矩阵杂谈——矩阵的秩
  • UE5 源码学习 初始化
  • vscode python 如何不监视/不分析某个大型目录,以提高速度
  • vba学习系列(8)--指定列单元格时间按时间段计数
  • 如何提取视频文件中的音频(.mp4 to .mp3)
  • 自动发现-实现运维管理自动化
  • elementUI表达自定义校验,校验在v-for中
  • MySQL笔试面试题之AI答(2)
  • ubuntu 安装k3s
  • Centos7.6版本安装mysql详细步骤
  • 基于大数据 Python Vue 美食推荐可视化系统(源码+LW+部署讲解+数据库)
  • GAMES101------学习笔记---自用02--Antialiasing (反走样)
  • ProtoBuf初识及其安装
  • Python流程控制专题:循环与else
  • Open WebUI + openai API / vllm API ,实战部署教程
  • Zookeeper面试整理-故障排查和调试
  • 【Linux】线程池详解及其基本架构与单例模式实现
  • 如何高效集成聚水潭数据至MySQL-技术案例解析