承接 快速上手使用 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'