原始碼管理 FAQ
本主題回答了有關在 Visual Studio Code 中使用 Git 原始碼管理和 GitHub 的常見問題。
Git
如何恢復或撤銷一次 Git 提交?
使用 Git:撤銷上次提交 (Git: Undo Last Commit) 命令來恢復你的上一次提交。這會將你的分支重置到提交前的狀態,包括所有更改。該命令也可以在原始碼管理檢視頂部的 提交 (Commit) 下的 更多操作 (More Actions) ...
選單中找到。
如何重新命名本地分支?
Git: 重新命名分支… (Git: Rename Branch…) 命令會提示你輸入新名稱。
如何在提交前撤銷 git add?
在 暫存的更改 (Staged Changes) 中列出的已新增檔案可以使用 - 圖示或透過拖放來取消暫存。
如何編輯最近一次的提交資訊?
要更新本地最後一次提交的提交資訊,請使用 Git: 提交暫存的內容(修訂)(Git: Commit Staged (Amend)) 命令。它會開啟一個編輯器來編輯和儲存最後一次的提交資訊。請確保沒有其他更改被暫存,否則它們也會被包含在該次提交中。
我初始化了我的倉庫,但是 ...
選單中的所有操作都是灰色的
要進行 推送 (push)、拉取 (pull) 和同步 (sync),你需要設定一個 Git 源 (origin)。你可以從倉庫託管方獲取所需的 URL。獲得該 URL 後,你需要透過執行幾個命令列操作將其新增到 Git 設定中。例如:
> git remote add origin https://github.com/<repo owner>/<repo name>.git
> git push -u origin main
我的團隊使用的是 Team Foundation Version Control (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 將在原始碼管理檢視中顯示一個歡迎檢視或一個錯誤通知。歡迎檢視和通知都包含 管理不安全的倉庫 (Manage Unsafe Repositories) 命令,該命令可讓你檢視可能不安全的倉庫列表,將其標記為安全,然後開啟它們。管理不安全的倉庫 (Manage Unsafe Repositories) 命令也可以在命令面板(⇧⌘P (Windows、Linux 為 Ctrl+Shift+P))中找到。將倉庫標記為安全會把倉庫位置新增到 safe.directory
git 配置中。
在 Windows 上,出現這種情況的一個常見場景是,使用一個“以管理員身份”執行的應用程式(例如,Windows Terminal 或 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 Servers 進行身份驗證。開啟一個 GHES 倉庫的本地檢出副本,你將被提示使用你的 GitHub Enterprise Server 賬戶登入。