Git的Staging Area的中文翻譯探討

Git的操作環境大致區分成三大塊:Working Directory、Staging Area與Repository。

1. 工作區

Working Directory、Working Tree:一般翻譯為工作區,Working Directory是由CVS時代就是這樣稱呼的,也就是目前程式的主要工作區域。

2. 整裝區

Staging Area、Index:Staging area一般翻譯為暫存區,但我覺得這個翻譯很容易對初學者造成混淆,它其實是扮演中介的角色,記錄著我們準備要提交到本地版本庫(Repository)裡存放的檔案的物件引用(Reference)的地方,因為是放引用而不是實體檔案,所以才又被稱為「索引」。Staging area的原意「【軍】集結待命地區」還比較符合它的實際用途,因此「整裝區」或「整備區」應該較符原意。Wikipedia對Staging area的解釋如下,和「舞台」沒什麼關係:

A staging area (otherwise staging point, staging base or staging post) is a location where organisms, people, vehicles, equipment or material are assembled before use.

我注意了一下Pro Git正體中文版簡體中文版裡對Staging area的翻譯都是暫存區,但標示的原文卻都誤為「stage area」或「staged area」,而英文版裡全部都是用「staging area」。

而「stage a file」的stage應該是當做動詞「置放」或「準備」的意思來聯想。暫存區則給stash用似乎比較好。

3. 版本庫

第三個區域就是存放所有檔案與其修改快照的儲存區,稱為倉庫(Repository),通常意譯為「版本庫」。

學習Git的參考連結

以下是最近蒐集到的Git學習網站:

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

2 個回應

  1. Danny表示:

    英英詞典,git 的 stage 應較似 “20.
    to plan, organize, or carry out (an activity), especially for dramatic or public effect” 之意;查英漢詞典,git 的 stage 應較似「10. vt. 策划,筹划,组织」之意。

    個人傾向把 staging area 稱作「預備區」,由於 plan, organize, carry out 涵括了從計劃到行動前期的許多階段,而 git 的 stage 比較接近「即將提交」的狀態,用「預備」應算適當。「準備」的語感稍有不同,且第一印象容易想到的英文是「prepare」,故不採用。

    此外,staging area 還有兩個常用名稱,一個是「索引」(index),一個是「快取」(cache,也常譯作「緩存」),git 凡提到這三個詞,都是和 staging area 有關,比如:
    * staging area 的實體檔案就是 .git/index(可嘗試把該檔案更名,會發現 git status 得出完全不同的結果)
    * git stash pop –index 是在 pop 出檔案後也順便更新預備區
    * git update-index 是更新預備區的內容
    * git checkout-index 是把預備區的內容取出來
    * git filter-branch –index-filter 是逐一更改各 commit 的預備區內容
    * git diff –cached 或 git diff –staged 是拿預備區的內容和 HEAD 版本的內容比較
    * git rm –cached 是只把檔案從預備區刪除
    * ……

    搞懂這個以後,很多 git 指令和選項的意義就豁然開朗了(以前沒人教,就摸索了很久orz)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *