原始碼控制常見問題
本主題回答有關在 Visual Studio Code 中使用 Git 原始碼控制和 GitHub 的常見問題。
Git
如何還原或復原 Git 提交?
使用 Git:還原上次提交 命令來還原上次提交。這會將您的分支重設為您執行提交之前的狀態,包括所有變更。此命令也可在原始碼控制檢視頂端之 提交 下方的 更多動作 ...
功能表中找到。
如何重新命名本機分支?
Git:重新命名分支… 命令會提示您輸入新名稱。
如何在提交前復原 git add?
在 已暫存變更 中列出的已新增檔案可以使用 - 圖示或拖放來取消暫存。
如何編輯最新的提交訊息?
若要更新上次本機提交的提交訊息,請使用 Git:提交暫存 (修改) 命令。這會開啟編輯器以編輯並儲存上次訊息。請確認沒有其他變更被暫存,因為這些變更會包含在提交中。
我初始化了我的存放庫,但 ...
功能表中的動作都呈現灰色
若要執行推送、提取和同步,您需要設定 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 認證協助程式。如果您執行的是適用於 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 帳戶登入。