分支管理与冲突解决

Git Log 分析

  • 查看项目历史信息:
    • git log
typescript 复制代码
commit a1b2c3d4e5f67890abcdef1234567890abcdef12 (HEAD -> main, origin/main)
Author: 你的名字 <your@email.com>
Date:   Sun Mar 29 15:30:00 2026 +0800

    完成用户登录功能开发
    包含密码加密、表单验证、错误提示

commit 1234567890abcdef1234567890abcdef12345678
Author: 你的名字 <your@email.com>
Date:   Sat Mar 28 14:20:00 2026 +0800

    添加用户数据库模型与表结构

commit fedcba0987654321fedcba0987654321fedcba09
Author: 你的名字 <your@email.com>
Date:   Fri Mar 27 10:15:00 2026 +0800

    初始化项目结构,创建基础目录

commit 9876543210fedcba9876543210fedcba98765432
Author: 你的名字 <your@email.com>
Date:   Thu Mar 26 09:00:00 2026 +0800

    首次提交:创建 README.md 与 .gitignore
  • 筛选时间:
    • git log --since='2026-03-29 00:00:00'
typescript 复制代码
 commit a1b2c3d4e5f67890abcdef1234567890abcdef12 (HEAD -> main)
Author: test1 <test1@example.com>
Date:   Sun Mar 29 10:20:15 2026 +0800

    修复登录接口超时问题

commit 789abcd1234fe56cdef789abcdef123456789abc
Author: test2 <test2@example.com>
Date:   Sun Mar 29 09:10:30 2026 +0800

    优化页面加载速度
  • 筛选作者:
    • git log --author='test1'
typescript 复制代码
commit a1b2c3d4e5f67890abcdef1234567890abcdef12 (HEAD -> main)
Author: test1 <test1@example.com>
Date:   Sun Mar 29 10:20:15 2026 +0800

    修复登录接口超时问题

commit 456def789abc123456789abcdef123456789abcd
Author: test1 <test1@example.com>
Date:   Fri Mar 27 16:40:20 2026 +0800

    添加用户信息校验逻辑
  • 筛选描述:
    • git log --grep='test1'
typescript 复制代码
commit 1234567890abcdef1234567890abcdef12345678
Author: admin <admin@example.com>
Date:   Sat Mar 28 14:30:00 2026 +0800

    test1 模块:完成数据查询接口开发

commit 987654321fedcba987654321fedcba9876543210
Author: test1 <test1@example.com>
Date:   Thu Mar 26 11:20:10 2026 +0800

    初始化 test1 相关配置文件

分支管理

  • 概念:
    • 每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支。
  • 价值:
    • 多人协作。
    • 环境管理。

创建分支

  • 新建分支,但仍然停留在当前分支:
    • git branch 分支名
  • 新建分支并直接切换至该分支:
    • git checkout -b 分支名
typescript 复制代码
git_demo % git branch test1

git_demo % git checkout -b test2
Switched to a new branch 'test2'

查看分支

  • 列出所有本地分支:
    • git branch
  • 列出所有远程分支:
    • git branch -r
  • 列出所有本地与远程分支:
    • git branch -a
typescript 复制代码
git_demo % git branch
  test1
* test2
  master

git_demo % git branch -r
  origin/master

git_demo % git branch -a
  test1
* test2
  master
  remotes/origin/master

切换分支

  • 切换到指定分支:
    • git checkout 分支名
typescript 复制代码
git_demo % git checkout test1
Switched to branch 'test1'

删除分支

  • 删除指定分支:
    • git branch -d 分支名
typescript 复制代码
git_demo % git branch -d test1
Deleted branch test1 (was 0ba4asd).

分支合并应用场景

  • 合入主分支。

  • 主分支合并其他分支:

    • 通常使用 Merge Request 的方式。
  • 合并指定分支到当前分支:

    • git merge 其他分支 本分支
  • 变基:重新设置基准:

    • git rebase 其他分支

什么是冲突

  • 冲突:在并行工作的模式下,工作最终会发生重叠。当多个成员以不同的方式更改同一行内容时,在这种情况下,Git 无法判断哪个版本是正确的,这时就会产生冲突。
  • 冲突场景:
    • 多个分支代码合并到一个分支时。
    • 多个分支向同一个远端分支推送代码时。
typescript 复制代码
$ git merge change_site
Auto-merging filename
CONFLICT (content): Merge conflict in filename
Automatic merge failed; fix conflicts and then commit the result.

解决冲突

  • 解决冲突方式:
    • IDE 中解决冲突:选择要保留的内容点击 Accept,保存代码。
    • 文件中解决冲突:保留需要的内容,删除其余内容,去掉分割线,保存代码。
  • 冲突解决流程:
    • 在本地当前分支上,修改冲突内容。
    • 执行 git add . 添加到暂存区。
    • 执行 git commit -m '提交说明' 提交到本地仓库,完成合并。
    • 执行 git push 提交到远程仓库。
typescript 复制代码
<<<<<<<
(本地修改内容)
=======
(远程修改内容)
>>>>>>>
相关推荐
索端阳11 分钟前
ARM Day02 学习总结:ARM汇编基础核心知识点梳理
汇编·学习·arm
小叶肥辉1 小时前
LangChain链和LangGraph图的学习笔记【六】——提示语模板(3)——Few-Shot Prompting(少样本提示) 模板类
笔记·python·学习·langchain·prompt·aigc
for_ever_love__1 小时前
爬虫项目: 获取高分电影的数据总结
开发语言·python·学习
syagain_zsx2 小时前
算法基础篇 · 02 高精度(C++ 题解)
开发语言·c++·学习·高精度
解道Jdon2 小时前
JDK 27发布:紧凑对象头、G1默认、量子安全TLS
ide·windows·git·svn·eclipse·github·visual studio
m4Rk_3 小时前
【论文阅读】Agent 记忆机制(72):EMA——在写入前决定什么值得记住
论文阅读·人工智能·学习·开源·github
扶风ff3 小时前
练题簿企业培训方案:统一题库、在线任务与岗位考核
学习·小程序
动词ing3 小时前
【学习笔记】数据结构 二分查找(二分查找模板+边界处理+查找区间+旋转数组)
笔记·学习
kkkkkkkkkk_Z3 小时前
学嵌入式和Linux应用编程|学习日记:深入理解TCP协议与网络编程实战
linux·笔记·学习
传奇开心果编程3 小时前
【Go入门练中学】第1课:从零开始
后端·学习·golang