Git/GitHub 中文術語表 | Linux 中國

 

我們根據 GitHub 等文檔,收集整理了部分常用的 Git 和 GitHub 中的術語的中文定名及其解釋。

作者:硬核老王

Git 和 GitHub 已經成爲了開發者的基礎工具,尤其是參與開源軟件開發時經常會使用它們。但是在 Git 和 GitHub 使用過程中遇到的很多術語並沒有標準的或約定俗成的中文譯名,因此,我們根據 GitHub 、Git 等文檔,並結合我們的翻譯慣例,收集整理了 Git 和 GitHub 中常用術語的中文譯名及其解釋。

這裏值得注意是術語有復刻、掛鉤、議題、星標、變基、倉庫等,這些術語之前要麼經常中英文混雜使用,要麼中文譯法不確定,我們根據多年的翻譯和開發經驗,在 GitHub 譯法的基礎上進行斟酌,整理了如下的術語表供大家使用參考。此外,“復刻”這個翻譯應該是我們 LCTT 首倡的;而“議題”這個對 issue 的譯法也比之前的一些其它譯法更爲精準;“倉庫”一詞還有存儲庫、版本庫等譯法,但是倉庫一詞似乎更加合適。

受讓人(assignee)

分配到某個議題的用戶。

追溯(blame)

Git 中的“追溯”功能描述對文件每行的最新修改,一般會顯示修訂、作者和時間。這很有用,例如,可以跟蹤何時添加了功能,或者哪個提交導致了特定漏洞。

分支(branch)

分支是倉庫的平行版本。它包含在倉庫中,但不影響主要或 master 分支,可讓你自由工作而不中斷“即時”版本。在執行所需的更改後,可以將分支合併回 master 分支以發佈更改。

檢出(checkout)

你可以在命令行上使用 git checkout 創建新分支,將當前的工作分支更改爲不同的分支,甚至使用 git checkout [branchname] [path to file]從不同的分支切換到不同版本的文件。“檢出”操作會使用對象數據庫中的樹對象或 blob 更新工作樹的全部或部分,以及更新索引和 HEAD(如果整個工作樹指向新分支)。

優選(cherry-picking)

從一系列更改(通常是提交)中選擇一部分更改,並在不同的代碼庫上將它們記錄爲新的更改系列。在 Git 中,這通過 git cherry-pick 命令來執行,在另一個分支上解壓縮現有提交引入的更改,並根據當前分支的提示將其記錄爲新提交。

清潔(clean)

工作樹在對應當前頭部引用的版本時是清潔的。另請參閱“髒”。

克隆(clone)

克隆是指存在於計算機上而非網站服務器其他位置的倉庫副本,或者是複製的操作。在克隆時,可在首選編輯器中編輯文件,使用 Git 跟蹤更改而無需保持在線。你克隆的倉庫仍與遠程版本連接,以便當你在線時將本地更改推送到遠程,以保持同步。

行爲準則(code of conduct)

爲如何參與社區制定標準的文檔。

代碼所有者(code owner)

被指定爲部分倉庫代碼所有者的個人。當有人打開對代碼所有者擁有的代碼進行更改的拉取請求(非草稿模式)時,會自動申請代碼所有者審查。

協作者(collaborator)

協作者是受倉庫所有者邀請參與,對倉庫擁有讀取和寫入權限的人。

提交(commit)

提交或“修訂”是對一個文件(或一組文件)的個別更改。在進行提交以保存工作時,Git 會創建唯一的 ID(也稱爲 "SHA" 或“哈希”),用於記錄提交的特定更改以及提交者和提交時間。提交通常包含一條提交消息,其中簡要說明所做的更改。

提交作者(commit author)

進行提交的用戶。

提交 ID(commit ID)

也稱爲 SHA。用於識別提交的 40 字符校驗和的哈希。

提交消息(commit message)

隨附於提交的簡短描述性文字,用於溝通提交引入的更改。

持續集成(continuous integration)

也稱爲 CI。在個人對 GitHub 上配置的倉庫提交更改後運行自動化構建和測試的過程。CI 是軟件開發中一種幫助檢測錯誤的常用最佳實踐。

貢獻指南(contribution guidelines)

說明人們應如何參與項目的文檔。

貢獻(contributions)

GitHub 上的特定活動。

貢獻者(contributor)

貢獻者是指對倉庫沒有協作者權限但參與過項目,並且他們打開的拉取請求已合併到倉庫的人員。

默認分支(default branch)

倉庫中的基本分支,除非你指定不同的分支,否則會自動對它完成所有拉取請求和代碼提交。此分支通常稱爲 master

遊離的 HEAD(detached HEAD)

如果你操作的是遊離的 HEAD,Git 將會警告你,這意味着 Git 不指向某個分支,並且你的任何提交都不會出現在提交歷史記錄中。例如,在檢出並非任何特定分支最新提交的任意提交時,你操作的是“遊離的 HEAD”。

差異(diff)

差異是指兩個提交之間的更改或保存的更改之間的區別,它將從視覺上描述文件自上次提交後添加或刪除的內容。

(dirty)

工作樹如果包含尚未提交到當前分支的更改,將被視爲“髒”。

快進(fast-forward)

快進是一種特殊類型的合併,在其中你有修訂以及“合併”另一個分支的更改作爲現有分支的子系。在這種情況下,你無法進行新的合併提交,而只是更新此修訂。這在遠程倉庫的遠程跟蹤分支中經常發生。

功能分支(feature branch)

用於試驗新功能或修復未正式使用的議題的分支。也稱爲主題分支。

圍欄代碼塊(fenced code block)

你可以在代碼塊前後使用三個反引號 ```,通過 GitHub Flavored Markdown 創建縮進代碼塊。

獲取(fetch)

在使用 git fetch 時,你將從遠程倉庫添加更改到本地工作分支,而不提交它們。與 git pull 不同,提取可讓你在更改提交到本地分支之前先進行審查。

跟進(用戶)(following (users))

獲取關於另一個用戶的貢獻和活動的通知。

強制推送(force push)

一種使用本地更改覆蓋遠程倉庫的 Git 推送,不管是否衝突。

復刻(fork)

復刻是其他用戶倉庫在你的帳戶上的個人副本。復刻允許你自由更改項目而不影響原始上游倉庫。你也可以在上游倉庫中打開拉取請求,並使復刻同步最新的更改,因爲兩個倉庫仍然互相連接。

gitfile

一種普通的 .git 文件,始終位於工作樹的根部,指向 Git 目錄,包含整個 Git 倉庫及其元數據。你可以在命令行上使用 git rev-parse --git-dir 查看倉庫(實際倉庫)的此文件。

HEAD

當前分支。

掛鉤(hook)

在多個 Git 命令正常執行時,對可選腳本進行標註以允許開發者添加功能或檢查。通常,掛鉤允許預先驗證和潛在中止命令,並且允許在操作完成後再發事後通知。

實例(instance)

組織包含在其配置和控制的虛擬機中的 GitHub 私有副本。

議題(issue)

議題是提議的與倉庫相關的改進、任務或問題。(對於公共倉庫)任何人都可創建議題,然後由倉庫協作者調解。每個議題都包含自己的討論線程。你也可以使用標籤將議題歸類並分配到某人。

密鑰指紋(key fingerprint)

用於識別較長公鑰的簡短字節系列。

關鍵詞(keyword)

用在拉取請求中時關閉議題的特定文字。

標籤(label)

議題或拉取請求的標記。倉庫隨附一系列默認標籤,但用戶也可創建自定義標籤。

LFS

Git Large File Storage。一種開源 Git 擴展,用於對大文件進行版本控制。

許可證(license)

一種可隨附於項目的文檔,告知們能夠對你的源代碼執行哪些操作,不能執行哪些操作。

行註釋(line comment)

拉取請求內特定代碼行上的評論。

主幹(master)

默認開發分支。只要創建 Git 倉庫,就會創建一個名爲 master 的分支,並且它會變爲活動的分支。大多數情況下,這包含本地開發,但純屬慣例,而非必需。

提及(mention)

一種通過在用戶名前加上 @ 符號來發送給用戶的通知。GitHub 上組織中的用戶也可成爲可提及的團隊一部分。

合併(merge)

合併是從一個分支(在相同的倉庫中或來自一個分叉)提取更改,然後將其應用到另一個分支。這通常是作爲“拉取請求”(可視爲請求合併)或通過命令行完成。如果沒有衝突的更改,可通過 GitHub.com web 界面使用拉取請求完成合並,或始終通過命令行完成。

合併衝突(merge conflict)

合併的分支之間發生的差異。當人們對同一文件的同一行進行不同的更改時,或者一個人編輯某文件而另一個人刪除該文件時,就會發生合併衝突。必須解決合併衝突後纔可合併分支。

合併請求(merge request)

合併請求(MR)是 GitLab 上類似於 GitHub 上的拉取請求的概念。

里程碑(milestone)

一種跟蹤倉庫中議題或拉取請求組進度的方式。

鏡像(mirror)

倉庫的新副本。

非快進(non-fast-forward)

當倉庫的本地副本未與上游倉庫同步時,你在推送本地更改之前需要提取上游更改。

通知(notification)

web 或電子郵件(根據你的設置)傳送的更新,提供你感興趣的活動的相關信息。

外部協作者(outside collaborator)

已被授予訪問一個或多個組織的倉庫但對組織沒有其他訪問權限的用戶,且不屬於組織的成員。

開源(open source)

開源軟件是可供任何人自由使用、修改和共享(以修改和未修改的形式)的軟件。今天,“開源”的概念通常擴展到軟件以外,代表一種協作原則,其中工作材料在線供任何人分叉、修改、討論和參與。

(origin)

默認上游倉庫。大多數項目至少有一個它們跟蹤的上游項目。默認情況下,源用於該目的。

所有者(owner)

對組織有完全管理權限的組織成員。

私有貢獻(private contributions)

對私有(與公共相對)倉庫的貢獻。

私有倉庫(private repository)

私有倉庫僅對倉庫所有者和所有者指定的協作者可見。

生產分支(production branch)

包含可使用或部署到應用程序或站點的最終更改的分支。

個人資料(profile)

顯示 GitHub 上用戶活動相關信息的頁面。

受保護分支(protected branch)

受保護分支在倉庫管理員選擇保護的分支上禁止多項 Git 功能。必要檢查未通過或必需審查未批准,不能對它們執行強制推送、刪除和更改合併,或者不能從 GitHub web 界面上傳文件到其中。受保護分支通常是默認分支。

公共貢獻(public contributions)

對公共(與私有相對)倉庫的貢獻。

公共倉庫(public repository)

公共倉庫可供任何人查看,包括不是 GitHub 用戶的人員。

拉取(pull)

拉取是指提取與合併更改。例如,如果有人編輯了你操作的遠程文件,你要將這些更改拉取到本地副本,以使其保持最新。另請參閱“提取”。

拉取權限(pull access)

讀取權限的同義詞。

拉取請求(pull request)

拉取請求(PR)是提議更改用戶提交的倉庫,然後被倉庫協作者接受或拒絕。像議題一樣,每個拉取請求都有自己的論壇。

拉取請求審查(pull request review)

拉取請求中協作者批准更改或在拉取請求合併之前申請進一步更改的評論。

推送(push)

推送是指將提交的更改發送到 GitHub.com 上的遠程倉庫。例如,如果你在本地更改內容,便可推送這些更改,讓其他人訪問。

推送分支(push a branch)

成功將分支推送到遠程倉庫後,使用本地分支中的更改來更新遠程分支。在你“推送分支”時,Git 將會到遠程倉庫中搜索分支的頭部引用,並驗證它是分支本地頭部引用的直系原型。在驗證後,Git 將拉取所有對象(從本地頭部引用可獲取,而遠程倉庫中缺失)到遠程對象數據庫,然後更新遠程頭部引用。如果遠程頭部不是本地頭部的原型,推送將會失敗。

推送權限(push access)

寫入權限的同義詞。

讀取權限(read access)

對倉庫的權限級別,允許用戶拉取或者讀取倉庫中的信息。所有公共倉庫向所有 GitHub 用戶授予讀取權限。拉取權限的同義詞。

自述文件(README)

包含倉庫中文件相關信息的文本文件,通常是倉庫訪問者看到的第一個文件。自述文件連同倉庫許可證、參與指南以及行爲準則,幫助你交流要求和管理項目的參與。

變基(rebase)

將一系列更改從一個分支重新應用到不同的基本分支,並將該分支的頭部重置爲結果。

發佈(release)

GitHub 封裝軟件並向用戶提供軟件的方式。

遠程(remote)

這是託管於服務器(很可能是 GitHub.com)上的倉庫或分支版本。遠程版本可以連接到本地克隆,以使更改保持同步。

遠程倉庫(remote repository)

用於跟蹤同一個項目但儲存在其他位置的倉庫。

遠程 URL(remote URL)

存儲代碼的位置:GitHub、其他用戶分支甚至不同服務器 上的倉庫。

副本(replica)

爲主要 GitHub Enterprise 實例提供冗餘的 GitHub Enterprise 實例。

倉庫(repository)

倉庫是 GitHub 最基本的元素,最容易被想象成項目的文件夾。一個倉庫包含所有項目文件(包括文檔),並且存儲每個文件的修訂歷史記錄。倉庫可有多個協作者,也可以是公共倉庫或私有倉庫。

倉庫維護員(repository maintainer)

管理倉庫的人員。此人可幫助對議題分類,以及使用標籤和其他功能管理倉庫的工作,也可負責更新自述文件和參與文件。

解決(resolve)

手動修復自動合併失敗的操作。

還原(revert)

恢復 GitHub 上的拉取請求時,新拉取請求會自動打開,其中有一個提交用於從原始合併的拉取請求恢復合併提交。在 Git 中,你可以使用 git revert 恢復提交。

審查(review)

審查允許對倉庫具有訪問權限的其他人評論拉取請求中提議的更改、審批更改或在拉取請求合併之前請求進一步更改。

服務掛鉤(service hook)

也稱爲“Web 掛鉤”。Web 掛鉤是一種通知方式,只要倉庫或組織上發生特定操作,就會發送通知到外部 web 服務器。

壓扁(squash)

將多個提交合併爲一個。也是 Git 命令。

暫存實例(staging instance)

在修改應用到實際 GitHub Enterprise 實例之前測試修改的一種方式。

狀態(status)

拉取請求中的可視表現形式,表示你的提交符合你參與的倉庫所設定的條件。

星標(star)

倉庫的書籤或讚賞表示。星標是項目受歡迎程度排名的手動方式。

主題分支(topic branch)

開發者用來識別開發概念行的常規 Git 分支。由於分支很容易並且便宜,因此往往適合擁有多個小分支,每個小分支包含定義明確的概念,或者漸進但相關的更改。也可稱爲“特徵分支”。

上游(upstream)

在談論分支或分叉時,原始倉庫的主要分支通常被稱爲“上游”,因爲它是其他更改的主要來源。你操作的分支/分叉則稱爲“下游”。也稱爲“源”。

上游分支(upstream branch)

合併到所述分支的默認分支(或所述分支變基到的分支)。它通過 branch.<name>.remote 和 branch.<name>.merge 配置。如果 A 的上游分支是源/B,有時我們會說“A 在跟蹤源/B”。

查看(watch)

你可以關注倉庫或議題,以便在議題或拉取請求有更新時接收通知。

web 掛鉤(webhooks)

Web 掛鉤可讓你構建或設置訂閱 GitHub.com 上特定事件的 GitHub 應用程序。Web 掛鉤提供一種通知方式,只要倉庫或組織中發生特定操作,就會發送通知到外部 web 服務器。也稱爲“服務掛鉤”。

寫入權限(write access)

對倉庫的權限級別,可讓用戶推送或寫入更改到倉庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章