章節 ▾
第二版
-
1. 起步
-
2. Git 基礎
-
3. Git 分支
-
4. 伺服器上的 Git
- 4.1 協議
- 4.2 在伺服器上部署 Git
- 4.3 生成 SSH 公鑰
- 4.4 架設伺服器
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 第三方託管服務
- 4.10 小結
-
5. 分散式 Git
-
A1. 附錄 A: Git 在其他環境
- A1.1 圖形介面
- A1.2 Visual Studio 中的 Git
- A1.3 Visual Studio Code 中的 Git
- A1.4 IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine 中的 Git
- A1.5 Sublime Text 中的 Git
- A1.6 Bash 中的 Git
- A1.7 Zsh 中的 Git
- A1.8 PowerShell 中的 Git
- A1.9 小結
-
A2. 附錄 B: 在應用程式中嵌入 Git
-
A3. 附錄 C: Git 命令
A3.8 附錄 C:Git 命令 - 打補丁
打補丁
Git 中的一些命令圍繞著將提交視為它們引入的更改的概念,就好像提交系列是一系列補丁一樣。這些命令可以幫助您以這種方式管理您的分支。
git cherry-pick
git cherry-pick 命令用於獲取單個 Git 提交中引入的更改,並嘗試將其作為新提交重新引入到您當前所在的分支上。這對於單獨獲取一個或兩個提交而不是合併整個分支(這會引入所有更改)非常有用。
Rebasing and Cherry-Picking Workflows 中描述並演示了 Cherry picking。
git rebase
git rebase 命令基本上是自動化的 cherry-pick。它確定一系列提交,然後按相同的順序將它們一個接一個地 cherry-pick 到別處。
Rebasing 中詳細介紹了 Rebasing,包括覆蓋涉及已公開分支的協作問題。
我們在 Replace 中的一個示例中實際使用它,將歷史記錄拆分成兩個單獨的儲存庫,同時還使用了 --onto 標誌。
我們在 Rerere 中透過一個示例,經歷了在 rebase 過程中遇到合併衝突。
我們在 Changing Multiple Commit Messages 中的互動式指令碼模式中使用 -i 選項。
git revert
git revert 命令本質上是 git cherry-pick 的反向操作。它建立一個新提交,應用您要定位的提交中引入更改的完全相反的操作,從而有效地撤銷或恢復它。
我們在 Reverse the commit 中使用此命令來撤銷合併提交。