原始檔控制常見問題
本主題回答了關於在 Visual Studio Code 中使用 Git 原始檔控制和 GitHub 的常見問題。
Git
如何復原或取消 Git 認可?
使用 Git:復原上一個認可命令來復原您上一個認可。這會將您的分支重設到進行認可之前的狀態,包括所有變更。此命令也可在「原始檔控制」檢視頂部的**認可**下的**更多動作** ... 選單中找到。
如何重新命名本機分支?
Git:重新命名分支…命令將會提示您輸入新名稱。
如何在認可前取消 git add?
列在**暫存變更**中的新增檔案可以透過**-**圖示或拖放來取消暫存。
如何編輯最近的認可訊息?
若要更新上一個本機認可的認可訊息,請使用 Git:認可暫存 (修正) 命令。這會開啟編輯器來編輯並儲存上一個訊息。請確保沒有其他變更被暫存,否則它們將會包含在認可中。
我已初始化儲存庫,但 `...` 選單中的所有動作都呈現灰色
若要**推送、提取和同步**,您需要設定 Git 遠端原始碼 (origin)。您可以從儲存庫主機取得所需的 URL。取得該 URL 後,您需要透過執行幾個命令列動作將其新增到 Git 設定中。例如
> git remote add origin https://github.com/<repo owner>/<repo name>.git
> git push -u origin main
我的團隊使用 Team Foundation 版本控制 (TFVC) 而非 Git。我該怎麼辦?
使用 Azure Repos 擴充功能,這將啟用 TFVC 支援。
為什麼提取、推送和同步動作從未完成?
這通常表示 Git 中未設定憑證管理,且您因某種原因沒有收到憑證提示。
您總是可以在本機設定憑證協助程式,以便從遠端伺服器提取和推送,而無需每次都讓 VS Code 提示您輸入憑證。
如何使用需要多重要素驗證的 Azure DevOps 組織登入 Git?
Git 憑證管理員 (GCM) 是 Windows、macOS 和 Linux 推薦的 Git 憑證協助程式。如果您使用 Windows 版 Git,GCM 已經為您安裝和設定完成。如果您在 macOS 或 Linux 上執行,GCM 的README 包含設定說明。
我的電腦上安裝了 GitHub Desktop,但 VS Code 卻忽略它
VS Code 僅支援官方 Git 發行版以進行 Git 整合。
每當 VS Code 執行時,我都會不斷收到 Git 驗證對話框
VS Code 會自動從伺服器擷取變更,以向您顯示傳入變更的摘要。Git 驗證對話框獨立於 VS Code 本身,並且是您目前 Git 憑證協助程式的一部分。
避免這些提示的一種方法是設定一個能記住您憑證的憑證協助程式。
另一個選項是透過變更以下設定來停用自動擷取功能:"git.autofetch": false。
為什麼 VS Code 警告我 Git 儲存庫可能不安全?
VS Code 使用 git.exe 執行所有 Git 操作。從 Git 2.35.2 開始,如果儲存庫位於由非目前使用者擁有的資料夾中,使用者將無法在其中執行 Git 操作,因為該儲存庫被視為可能不安全。
如果您嘗試開啟此類儲存庫,VS Code 將在「原始檔控制」檢視中顯示歡迎檢視或錯誤通知。歡迎檢視和通知都包含**管理不安全儲存庫**命令,可讓您檢閱潛在不安全儲存庫的列表、將它們標記為安全並開啟它們。**管理不安全儲存庫**命令也可在命令選擇區中找到 (⇧⌘P (Windows、Linux Ctrl+Shift+P))。將儲存庫標記為安全會將儲存庫位置新增到 safe.directory Git 設定中。
在 Windows 上,這種情況常見於使用「以系統管理員身分執行」的應用程式 (例如 Windows 終端機或 VS Code) 複製儲存庫,但隨後使用不以「系統管理員身分執行」的其他應用程式或執行個體 (例如 VS Code) 開啟該儲存庫時。
為什麼 VS Code 沒有在工作區或開啟檔案的父資料夾中偵測到 Git 儲存庫?
VS Code 使用 git rev-parse --show-toplevel 來判斷 Git 儲存庫的根目錄。在大多數情況下,Git 儲存庫的根目錄位於工作區內,但在某些情況下,Git 儲存庫的根目錄位於工作區或開啟檔案的父資料夾中。雖然在工作區或開啟檔案的父資料夾中開啟 Git 儲存庫對於進階使用者來說是一項很棒的功能,但對於新使用者來說可能會造成混淆。我們曾看過這種混淆導致從這些 Git 儲存庫丟棄變更,從而造成資料遺失的情況。
為了避免混淆並降低資料遺失的風險,VS Code 將在「原始檔控制」檢視中顯示通知和新的歡迎檢視,並且不會自動從工作區和開啟檔案的父資料夾中開啟 Git 儲存庫。
您可以使用 git.openRepositoryInParentFolders 設定來控制如何處理父資料夾中的 Git 儲存庫。如果您想恢復舊行為,請將 git.openRepositoryInParentFolders 設定為 always。
我可以在 VS Code 中使用 SSH Git 驗證嗎?
可以,不過 VS Code 最容易與沒有密碼的 SSH 金鑰搭配使用。如果您有帶有密碼的 SSH 金鑰,您需要從 Git Bash 提示字元啟動 VS Code 才能繼承其 SSH 環境。
GitHub
是否支援 GitHub Enterprise?
VS Code 官方支援與 GitHub Enterprise Server 進行驗證。開啟 GHES 儲存庫的本機簽出,您將會被提示使用您的 GitHub Enterprise Server 帳戶登入。
疑難排解
如需診斷和解決 Git 問題的協助,請參閱疑難排解指南。該指南涵蓋了如何使用 Git 輸出日誌以及啟用追蹤日誌以獲取詳細的診斷資訊。