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

解决本地冲突

1. 合并分支

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

bash 复制代码
git checkout main
git merge feature

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

2. 查看冲突文件

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

bash 复制代码
git status

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

3. 手动解决冲突

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

plaintext 复制代码
<<<<<<< HEAD
当前分支的内容
=======
合并分支的内容
>>>>>>> feature

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

4. 标记冲突已解决

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

bash 复制代码
git add <冲突文件名>
5. 提交合并

完成合并后,提交更改:

bash 复制代码
git commit -m "Resolved merge conflict between main and feature"

解决远程冲突

1. 拉取远程更新

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

bash 复制代码
git pull origin main

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

2. 查看冲突文件

同样使用:

bash 复制代码
git status
3. 手动解决冲突

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

4. 标记冲突已解决

添加已解决的文件:

bash 复制代码
git add <冲突文件名>
5. 提交更改

提交合并:

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

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

bash 复制代码
git push origin main

总结

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

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

2. 分支合并

合并命令:
bash 复制代码
git checkout main
git merge feature
  • 如果不需要保留历史

    bash 复制代码
    git merge --squash feature

3. 版本回退

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

    bash 复制代码
    git log --oneline
  2. 选择提交后回退

    bash 复制代码
    git reset --hard <commit_hash>  # 永久回退

    或者

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

4. 版本管理

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

5. 删除分支

删除本地分支:
bash 复制代码
git branch -d feature  # 删除已合并的分支
git branch -D feature  # 强制删除未合并的分支
删除远程分支:
bash 复制代码
git push origin --delete feature
相关推荐
TM1Club7 小时前
AI驱动的预测:新的竞争优势
大数据·人工智能·经验分享·金融·数据分析·自动化
zhang133830890757 小时前
CG-09H 超声波风速风向传感器 加热型 ABS材质 重量轻 没有机械部件
大数据·运维·网络·人工智能·自动化
电商API_180079052478 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
龙山云仓9 小时前
No140:AI世间故事-对话康德——先验哲学与AI理性:范畴、道德律与自主性
大数据·人工智能·深度学习·机器学习·全文检索·lucene
weixin_462446239 小时前
Git 本地忽略 application-dev.yml 的最佳实践:不提交 .gitignore,不影响团队协作!
git
躺柒10 小时前
读数字时代的网络风险管理:策略、计划与执行04风险指引体系
大数据·网络·信息安全·数字化·网络管理·网络风险管理
独自归家的兔11 小时前
从 “局部凑活“ 到 “全局最优“:AI 规划能力的技术突破与产业落地实践
大数据·人工智能
海域云-罗鹏11 小时前
国内公司与英国总部数据中心/ERP系统互连,SD-WAN专线实操指南
大数据·数据库·人工智能
策知道12 小时前
依托政府工作报告准备省考【经验贴】
大数据·数据库·人工智能·搜索引擎·政务
Henry-SAP13 小时前
SAP(ERP) 组织结构业务视角解析
大数据·人工智能·sap·erp·sap pp