Git Log 分析
- 查看项目历史信息:
git log
Git Log 检索
- 筛选时间:
git log --since='2023-02-02 00:00:00'
- 筛选作者:
git log --author='feier'
- 筛选描述:
git log --grep='update'
分支管理
- 概念:
- 每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支。
- 价值:
- 多人协作。
- 环境管理。
创建分支
- 新建分支,但仍然停留在当前分支:
git branch 分支名
- 新建分支并直接切换至该分支:
git checkout -b 分支名
查看分支
- 列出所有本地分支:
git branch
- 列出所有远程分支:
git branch -r
- 列出所有本地与远程分支:
git branch -a
切换分支
- 切换到指定分支:
git checkout 分支名
删除分支
- 删除指定分支:
git branch -d 分支名
关于remotes/origin/HEAD -> origin/master:
这是远程仓库所引用的符号分支,克隆存储库时,默认情况下,将位于remotes/origin/HEAD引用的分支上。原文可见:为什么我的`git branch -l -a`输出中有`remotes / origin / HEAD-> origin / master`条目? | 码农家园
分支合并应用场景
- 合入主分支。
- 主分支合并其他分支:
- 通常使用 Merge Request 的方式。
合并分支
- 合并指定分支到当前分支:
git merge 其他分支 本分支
- 变基:重新设置基准:
git rebase 其他分支
关于merge和rebase的区别:
【精选】git rebase和merge区别_rebase和merge的区别_muzidigbig的博客-CSDN博客
什么是冲突
- 冲突:在并行工作的模式下,工作最终会发生重叠。当多个成员以不同的方式更改同一行内容时,在这种情况下,Git 无法判断哪个版本是正确的,这时就会产生冲突。
- 冲突场景:
- 多个分支代码合并到一个分支时。
- 多个分支向同一个远端分支推送代码时。
解决冲突
- 解决冲突方式:
- IDE 中解决冲突:选择要保留的内容点击 Accept,保存代码。
- 文件中解决冲突:保留需要的内容,删除其余内容,去掉分割线,保存代码。
- 冲突解决流程:
- 在本地当前分支上,修改冲突内容。
- 执行
git add .
添加到暂存区。 - 执行
git commit -m '提交说明'
提交到本地仓库,完成合并。 - 执行
git push
提交到远程仓库。