常見問題 Git 問題

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

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

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

如何找出我在哪個分支工作?

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

何時應該進行 Git 認可?

接受的做法是針對邏輯上個別的變更進行個別認可。 請將認可視為記錄簿中的專案。 每當您進行值得指出的變更時,請在認可中記錄。 一個受歡迎的選項是允許每個人盡可能多地在本機認可,但在他們推送本機認可之前,他們會先通過 重新處理來壓倒他們。 此選項可讓用戶彈性地進行頻繁認可,同時簡化認可歷程記錄。

如果每個分支都保留其完整認可歷程記錄,那不會讓 *main* 的認可歷程記錄隨著時間而難以追蹤嗎?

具有許多認可和一系列參與者的大型專案,可能會導致分支的認可歷程記錄 main ,代表主題分支的開發歷程記錄, main 併入到整體專案的開發歷程記錄。 Git 提供一個功能,可讓您透過 壓縮認可和重新處理來壓縮分支上的認可。 當您壓縮認可時,分支上的認可歷程記錄會變得不那麼詳細,這會使合併后,在主要分支上建立更簡單的認可歷程記錄。

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

git blame使用 命令來找出對檔案進行特定變更的人員。 從本機存放庫,您可以使用 參數來執行git blame-L,並指定感興趣的行。 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 中的復原變更。
  • 認可變更。 請參閱 使用認可將工作儲存在 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] 下,選取 [全域 設定] 或 [存放庫] 設定 連結。