承接 快速上手使用 Git 壹, 上文讲了 Git 初始化仓库,追踪文件的方法,本篇将会从 分支,远程仓库,变基与合并,最后会简单提及 stash 的使用场景和 GPG 认证
分支创建,切换,删除#
git branch
# 输出
* main
该命令可以查询当前仓库中的分支数和当前所处的分支 (main), git 初次提交后,会自动建立一个 master/main 分支
创建分支#
git branch dev
# 创建一个名为 dev 的分支, 但是不会切换至 dev 分支, 此时还在 main 分支
切换分支#
git checkout dev
# 将当前分支从 main 切换至 dev 分支, 也可以将这个步骤和上一步骤合并
git checkout -b dev1
# 直接创建 dev1 分支, 并切换至 dev1 分支
删除分支#
git branch -d dev1
# 删除名为 dev1 的分支
分支合并#
merge 和 rebase 是处理分支合并的两种不同的方法
合并#
# 以下演示使用 merge 合并
git checkout main
git merge dev
变基#
# 以下是 rebase 合并 dev 分支的方法
git checkout main
git rebase dev
小结#
merge 和 rebase 都是合并分支的方法,区别如下:
- merge 合并是将两分支合并后并做一个 commit
- rebase 是将两个分支完全合并成一个分支
图示如下:
merge
Mermaid Loading...
merge 适用于多人共同开发环境,比如使用 dev 分支开发一个新特性,最后使用 merge 来合并到 main 分支
rebase
Mermaid Loading...
rebase 适用于个人开发流程,如个人开发一个项目,为了提交记录整洁,使用 rebase 将所有提交记录保存至一个分支
远程仓库#
以 Github 为例
git remote add origin https://github.com/kyleten/ddd
# 将 url链接 以 origin 命名
在之后每次 commit 后可以使用
git push origin
# 将 commit 提交到远程仓库
# 第一次提交需要设置
git push -u origin
stash 使用场景#
在多人开发时,你正在开发一个功能 (功能没有开发完成,也不想 commit) 但是需要拉取远程仓库的更新时,需要使用 stash 将当前工作区保存
git stash -m 'stack1'
# 将当前内容暂存, 备注是 stack1
在完成后可以使用以下命令恢复工作区
git stash pop
# 将最近的暂存恢复
# 也可以指定特定的编号, 先使用 list 查看编号
git stash list
# 输出
stash@{0}: On main: stack1
# 使用以下命令恢复
stash pop 0
GPG 签名#
具体创建密钥,安装软件,创建签名子密钥等内容本文章不涉及
在配置中添加#
git config --global user.signingkey xxxxxxxxx!
# 带 ! 是指定特定的子密钥, 只有一个密钥可以去掉 !
git config --global commit.gpgsign true
# 如果在 windows 中无法正常使用, 可以使用以下命令
git config --global gpg.program '到\bin\gpg.exe'