跳至主要內容
Git-6.变基(rebase)和合并(merge)区别?

问题详情

解析

  1. 合并(Merge):

    • 合并是将两个分支的历史记录合并在一起,创建一个新的合并提交来整合两者的修改。
    • 合并会保留原分支的完整历史记录,因此可以清晰地看到哪些修改来自于哪个分支。
    • 合并会创建一个新的合并提交,这个提交有多个父节点,指向被合并的分支的最新提交和合并分支的最新提交。
    o---o---o---o---o---o   (分支A)
     \         /
      o---o---o   (分支B)
    
    • 合并后:
    o---o---o---o---o---o---o   (合并提交)
     \         /           /
      o---o---o   (分支A)   (分支B)
    

Mr.Si大约 2 分钟Git踩坑记录
Git-5.路径引发的思考

问题详情

解决思路

  1. 本地开发环境和部署服务器环境之间的路径解析方式不同所致。
<chatmessage avatar="/assets/emoji/blzt.png" :avatarWidth="40">
处于项目的根目录,所以相对路径 blzt.png 可以直接找到图片。
</chatmessage>

Mr.Si大约 1 分钟Git踩坑记录
Git-1.忽略跟踪的文件

忽略规则

首先你需要在项目根目录下新建一个 .gitignore 文件

  • 空格不匹配任何文件,可以作为分隔符号
  • # 开始的为注释
  • \ 表示转义符
  • ! 开始的表示否定,也就是开启跟踪
  • / 开始的表示项目根目录
  • / 结尾的表示某个文件夹,但是不匹配该文件
  • ** 表示多级,其位置可在开始,中间,结束
  • ? 表示单个字符
  • [] 表示单个字符列表

Mr.Si大约 2 分钟Git
Git-2.多仓库工具 Repo

前言

有个小任务,拉取 Chromium OS 的代码:

实践

cd ${SOURCE_REPO}
repo init -u https://chromium.googlesource.com/chromiumos/manifest.git

# Optional: Make any changes to .repo/local_manifests/local_manifest.xml before syncing
repo sync

Mr.Si小于 1 分钟Git
Git-3.规范 Git 提交信息并生成日志

前言

规范的 commit message 有助于团队其它人员 reviewAngular 规范

规范(commit)

Commit message 包括三个部分:

<type>(<scope>): <subject> # 必填
<BLANK LINE> # 空一行
<body> # 可选
<BLANK LINE> # 空一行
<footer> # 可选

Mr.Si大约 3 分钟Githusky
Git-4.使用子模块

当希望某个项目依赖于另外一个项目,虽然有 lerna 的方案可以选择,但若希望它具有独立的 issuefeature 管理,那么可能需要 multi-repo 的形式。

submodule 可以做到该行为。

使用 submodule

git submodule -h

git submodule [--quiet] add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--] <repository> [<path>]

Mr.Si小于 1 分钟Git
Git

版本控制工具 Git

Git是世界上先进的开源「分布式的版本控制系统」,而SVN是「集中式的版本控制系统」,SVN对于版本的管理集中于中央服务器中,而Git对于版本的管理可以在本地。

安装

工欲善其事必先利其器。下载地址


Mr.Si大约 6 分钟Git介绍Git