原始碼管理常見問題解答
本主題回答了有關在 Visual Studio Code 中使用 Git 原始碼管理和 GitHub 的常見問題。
Git
如何撤銷或還原 Git 提交?
使用 Git: 撤銷上一次提交 命令來撤銷上一次提交。這將使您的分支重置到提交之前的狀態,包括所有更改。該命令也可在原始碼管理檢視頂部的“提交”下的“更多操作” ... 選單中找到。
如何重新命名本地分支?
Git: 重新命名分支… 命令會提示您輸入新名稱。
如何撤銷在提交前執行的 git add?
“暫存的更改”中列出的已新增檔案可以透過 - 圖示或拖放操作來取消暫存。
如何編輯最近一次的提交訊息?
要更新上次本地提交的提交訊息,請使用 Git: 暫存並提交 (Amend) 命令。它會開啟一個編輯器來編輯和儲存上次的訊息。請確保沒有其他更改處於暫存狀態,否則它們也會包含在提交中。
我初始化了儲存庫,但“...”選單中的操作都顯示為灰色
要執行推送、拉取和同步操作,您需要設定 Git 來源。您可以從儲存庫託管處獲取所需的 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 Credential Manager (GCM) 是 Windows、macOS 和 Linux 推薦的 Git 憑據管理器。如果您執行的是 Git for Windows,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。
我可以使用 SSH Git 身份驗證與 VS Code 配合使用嗎?
是的,儘管 VS Code 使用沒有密碼短語的 SSH 金鑰是最方便的。如果您擁有一個帶有密碼短語的 SSH 金鑰,您需要從 Git Bash 提示符啟動 VS Code,以繼承其 SSH 環境。
GitHub
是否支援 GitHub Enterprise?
VS Code 對與 GitHub Enterprise Server 的身份驗證提供官方支援。開啟 GHES 儲存庫的本地簽出,您將看到提示使用您的 GitHub Enterprise Server 帳戶登入。
故障排除
有關幫助診斷和解決 Git 問題,請參閱故障排除指南。該指南涵蓋了使用 Git 輸出日誌和啟用跟蹤日誌以獲取詳細的診斷資訊。