-
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.3 附錄 C:Git 命令 - 基本快照
基本快照
對於暫存內容並將其提交到歷史記錄的基本工作流程,只有少數幾個基本命令。
git add
git add
命令將工作目錄中的內容新增到暫存區(或“索引”)中,以備下次提交。當執行 git commit
命令時,預設情況下它只檢視這個暫存區,因此 git add
用於精確地構建你希望下一次提交快照看起來的樣子。
這個命令在 Git 中極其重要,本書中提及或使用了數十次。我們將快速介紹一些可以找到的獨特用法。
我們首先在跟蹤新檔案中詳細介紹和解釋了 git add
。
我們提到如何在基本合併衝突中用它來解決合併衝突。
我們介紹瞭如何使用它來互動式地暫存修改檔案中特定部分,詳見互動式暫存。
最後,我們在樹物件中模擬了它的底層操作,這樣你就能瞭解它在幕後做了什麼。
git status
git status
命令將顯示工作目錄和暫存區中檔案的不同狀態。哪些檔案已修改但未暫存,哪些檔案已暫存但尚未提交。在其常規形式下,它還會顯示一些關於如何在這些階段之間移動檔案的基本提示。
我們首先在檢查檔案的狀態中介紹了 status
命令,包括其基本形式和簡化形式。雖然我們在本書中多處使用它,但 git status
命令的所有功能幾乎都在那裡得到了介紹。
git diff
git diff
命令用於檢視任意兩個樹之間的差異。這可以是工作環境和暫存區之間的差異(單獨使用 git diff
),暫存區和上次提交之間的差異(git diff --staged
),或者兩個提交之間的差異(git diff master branchB
)。
我們首先在檢視已暫存和未暫存的更改中介紹了 git diff
的基本用法,在那裡我們展示瞭如何檢視哪些更改已暫存,哪些尚未暫存。
我們在提交準則中檢查提交前可能存在的空白符問題,使用 --check
選項。
我們瞭解瞭如何透過 git diff A…B
語法在確定引入了什麼中更有效地檢查分支之間的差異。
我們使用它透過 -b
過濾掉空白符差異,以及如何在高階合併中透過 --theirs
、--ours
和 --base
比較衝突檔案的不同階段。
最後,我們在從子模組開始中透過 --submodule
有效地比較子模組更改。
git difftool
git difftool
命令只是啟動一個外部工具來顯示兩個樹之間的差異,以防你想使用內建 git diff
命令之外的其他工具。
我們只在檢視已暫存和未暫存的更改中簡要提及了這一點。
git commit
git commit
命令獲取所有已透過 git add
暫存的檔案內容,並在資料庫中記錄一個新的永久快照,然後將當前分支上的分支指標移動到該快照。
我們首先在提交你的更改中介紹了提交的基本知識。在那裡我們還演示瞭如何在日常工作流程中使用 -a
標誌跳過 git add
步驟,以及如何使用 -m
標誌在命令列上傳遞提交訊息而不是啟動編輯器。
在撤銷操作中,我們介紹了使用 --amend
選項來重做最近一次提交。
在分支概覽中,我們更詳細地探討了 git commit
的作用以及它為何以這種方式工作。
我們在簽署提交中瞭解瞭如何使用 -S
標誌以加密方式簽署提交。
最後,我們深入研究了 git commit
命令在後臺做了什麼以及它在提交物件中是如何實際實現的。
git reset
git reset
命令主要用於撤銷操作,正如其動詞所示。它會移動 HEAD
指標,並可選擇地更改 index
或暫存區,如果你使用 --hard
,它還可以選擇性地更改工作目錄。最後一個選項可能導致此命令在錯誤使用時丟失你的工作,因此在使用前務必確保你理解它。
我們首先在取消暫存已暫存檔案中有效地介紹了 git reset
的最簡單用法,在那裡我們使用它來取消暫存我們已經執行過 git add
的檔案。
然後我們在重置的奧秘中詳細介紹了它,該章節完全致力於解釋此命令。
我們使用 git reset --hard
在中止合併中中止合併,在那裡我們也使用了 git merge --abort
,它是 git reset
命令的一個簡單包裝。