常見問題 Git

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018

如何輕鬆地將遠端分支下載至本機存放庫?

首先,請確定您已設定存放 origin 庫。 如果您複製 git clone 存放庫) ,您應該會有這類存放庫。 當您簽出不存在於本機的分支時,Git 會判斷是否有具有相同名稱的遠端分支。 如果有的話,Git 會建立本機分支,並參考該名稱的遠端分支。 使用 git pull 來下載認可,並讓 Git 在本機趕上分支歷程記錄。

如何找出我正在使用哪一個分支?

git branch 沒有引數會顯示本機分支,並醒目提示您已取出的分支。在 Visual Studio 中,當您使用儲存在本機 Git 存放庫的專案時,狀態列也會顯示最新分支。

何時應該進行 Git 認可?

接受的做法是針對邏輯上個別的變更進行個別認可。 將認可視為記錄簿中的專案。 每當進行值得注意的變更時,請將其記錄在認可中。 熱門選項是讓每個人都能盡可能在本機認可,但在推送本機認可之前,他們先透過 重新處理來壓縮它們。 此選項可讓使用者彈性地進行頻繁認可,同時讓認可歷程記錄保持簡化。

如果每個分支都保留其完整認可歷程記錄,就不會讓 *main* 的認可歷程記錄難以經過一段時間?

具有許多認可和一系列參與者的大型專案,可能會導致分支的認可歷程記錄 main ,代表合併到 main 主題分支的開發歷程記錄,超過整體專案的開發歷程記錄。 Git 提供一種功能,可讓您透過四捨五入認可 和重新處理,在分支上壓縮認可。 當您壓縮認可時,分支上的認可歷程記錄會變得較不詳細,因此合併後,主分支上的認可歷程記錄會變得更簡單。

如何找出誰對檔案進行特定變更?

git blame使用 命令來找出對檔案進行特定變更的人員。 您可以從本機存放庫使用 -L 參數執行 git blame ,並指定感興趣的幾行。 Blame 會產生格式化輸出,其中顯示上次更新行的認可,以及進行認可的人員名稱。

> git blame foo.js -L 20,+40  # show the blame output for the next 40 lines starting at line 20

215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 20) line 20 of the code
215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 21) line 21 of the code
215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 22) line 22 of the code

Blame 會為您搜尋認可歷程記錄。 您也可以在入口網站中檢閱檔案的歷程記錄,以判斷誰進行變更,以及何時進行變更。 開啟存放庫和分支的程式碼總管,然後選取感興趣的檔案。 Azure Repos會顯示目前分支上該檔案的完整認可歷程記錄。

我已對某些檔案進行變更,現在我無法簽出不同的分支或重新建立工作基底。

簽出 Git 中的不同分支會影響檔案系統上的檔案狀態。 Git 會使用認可歷程記錄,確定您正在使用代表分支狀態的檔案。 如果您在未認可變更時嘗試變更分支,則在簽出期間會覆寫這些變更。 因為 Git 不想要意外遺失您的變更,所以可防止簽出發生。 您有兩個選擇:

我已完成一些工作,但需要切換至其他專案。 如何儲存我稍後的工作,而不認可變更?

有時候您想要保留變更,但不會認可這些變更,因為它們不是您習慣這麼做的一點。 使用 Git stash 。 Stash 會採用分支中目前暫存且未標記的變更,並儲存工作,然後將分支傳回最後一個認可的狀態。 您可以變更為其他分支、執行您的工作,然後在返回此分支時執行 stash apply 以還原變更。

> git stash
Saved working directory and index state WIP on feature1: be26067 updated endpoint docs
HEAD is now at be26067

當您執行 git stash apply 時,最近隱藏的變更將會套用至您目前的分支。 如果發生衝突套用隱藏變更,將會還原不衝突之檔案的變更, stash 並在您解決衝突的檔案中建立衝突標記。 在此情況下,您應該手動 合併 變更。

一旦您完成隱藏,請使用 git stash drop 此命令將其刪除,移除最後一組隱藏的變更。

您可以有多個隱藏,但這麼做需要更多手動操作,因為您必須明確套用和卸載隱藏。 深入瞭解 Git Stash 檔

如何變更 Git 命令列工具的預設編輯器?

根據預設,命令列 Git 會在要求認可訊息、執行重新基底和其他需要其他資訊才能完成的工作時使用命令行編輯器。 預設編輯器是使用 git config 來設定:

> git config core.editor _path_to_editor_ _options_to_editor_

Git For Windows 可讓您輕鬆地將記事本設定為編輯器:

> git config core.editor notepad

此命令會設定 Windows 記事本,視需要編輯 Git 資訊,並適當地將文字從 Git 傳遞至記事本。 您也可以指定

> git config format.commitMessageColumns 72 

若要將認可訊息中的文字資料行保留至慣用的 72,並在達到該行的字元限制之後換行。

如何變更認可中顯示的使用者名稱和電子郵件?

Git 會將使用者名稱和電子郵件地址資訊放在每個認可內,Azure Repos檢視認可和使用提取要求時使用此資訊。 如果您正在處理命令列,您可以使用 命令來更新顯示 git config 的名稱和電子郵件資訊:

> git config --global user.email "frank@fabrikam.com"
> git config --global user.name "Francis Totten"

此選項 --global 會設定此系統上所有 Git 存放庫認可中包含的電子郵件和名稱。 如果您想要變更單一存放庫的設定,您必須變更為 Git 存放庫所在的目錄,並在沒有 旗標的情況下 --global 執行上述命令。

您也可以從 Visual Studio 變更名稱和電子郵件設定。 從Git功能表中,選取 [選項] 對話方塊中的[設定],選取[Git 全域設定] 或 [Git 存放庫設定>一般]。

Visual Studio 2019 16.8 版和更新版本提供 Git 版本控制體驗,同時維護 Team Explorer Git 使用者介面。 若要使用Team Explorer,請從功能表列取消核取[工具>選項>預覽功能>] [新增 Git 使用者體驗]。 您可以從任一介面交換練習 Git 功能。

在 [Team Explorer] 中,選擇 [ 設定 ],然後在 [Git] 下,選取 [ 全域設定 ] 或 [ 存放庫設定 ] 連結。