git log 分析,分支管理策略,合并与冲突

Git Log 分析

  • 查看项目历史信息:
    • git log

Git Log 检索

  • 筛选时间:
    • git log --since='2023-02-02 00:00:00'
  • 筛选作者:
    • git log --author='feier'
  • 筛选描述:
    • git log --grep='update'

分支管理

  • 概念:
    • 每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支。
  • 价值:
    • 多人协作。
    • 环境管理。
  • 主分支:干净的最新的经过测试的分支
  • 其他分支: develop, topic,bug分支

创建分支

  • 新建分支,但仍然停留在当前分支:
    • git branch 分支名
  • 新建分支并直接切换至该分支:
    • git checkout -b 分支名

查看分支

  • 列出所有本地分支:
    • git branch
  • 列出所有远程分支:
    • git branch -r
  • 列出所有本地与远程分支:
    • git branch -a

切换分支

  • 切换到指定分支:
    • git checkout 分支名

删除分支

  • 删除指定分支:
    • git branch -d 分支名

Git 合并与冲突

分支合并应用场景

  • 合入主分支。
  • 主分支合并其他分支:
    • 通常使用 Merge Request 的方式。

合并分支

  • 合并指定分支到当前分支:
    • git merge 其他分支 本分支
  • 变基:重新设置基准:
    • git rebase 其他分支 多人合作的不推荐使用这个命令

什么是冲突

  • 冲突:在并行工作的模式下,工作最终会发生重叠。当多个成员以不同的方式更改同一行内容时,在这种情况下,Git 无法判断哪个版本是正确的,这时就会产生冲突。
  • 冲突场景:
    • 多个分支代码合并到一个分支时。
    • 多个分支向同一个远端分支推送代码时。

解决冲突

  • 解决冲突方式:
    • IDE 中解决冲突:选择要保留的内容点击 Accept,保存代码。
    • 文件中解决冲突:保留需要的内容,删除其余内容,去掉分割线,保存代码。
  • 冲突解决流程:
    1. 在本地当前分支上,修改冲突内容。
    2. 执行 git add . 添加到暂存区。
    3. 执行 git commit -m '提交说明' 提交到本地仓库,完成合并。
    4. 执行 git push 提交到远程仓库。