VS Codeのエージェントモードを拡張するには、を試してください!

ソース管理 FAQ

このトピックでは、Visual Studio CodeでのGitソース管理とGitHubの使用に関するよくある質問に答えます。

Git

Gitのコミットを元に戻す(revert)または取り消す(undo)にはどうすればよいですか?

[Git: Undo Last Commit (最後のコミットを元に戻す)] コマンドで最後のコミットを元に戻します。これにより、ブランチはコミット直前の状態にリセットされ、すべての変更が含まれます。このコマンドは、ソース管理ビューの上部にある [Commit (コミット)] の下の [More Actions (その他の操作)] ... メニューからも利用できます。

ローカルブランチの名前を変更するにはどうすればよいですか?

[Git: Rename Branch... (ブランチ名の変更...)] コマンドで、新しい名前の入力を求められます。

コミットする前に git add を取り消すにはどうすればよいですか?

[Staged Changes (ステージされている変更)] にリストされている追加されたファイルは、- アイコンまたはドラッグアンドドロップでステージから除外 (unstage) できます。

最新のコミットメッセージを編集するにはどうすればよいですか?

最後のローカルコミットのコミットメッセージを更新するには、[Git: Commit Staged (Amend) (ステージされている変更をコミット (修正))] コマンドを使用します。エディターが開き、最後のメッセージを編集して保存できます。他の変更がステージされていないことを確認してください。ステージされている場合、それらの変更もコミットに含まれてしまいます。

リポジトリを初期化しましたが、... メニューのアクションがすべてグレーアウトしています

プッシュ、プル、および同期を行うには、Gitのオリジン (origin) を設定する必要があります。リポジトリのホストから必要なURLを取得できます。そのURLを取得したら、いくつかのコマンドライン操作を実行してGitの設定に追加する必要があります。例:

> git remote add origin https://github.com/<repo owner>/<repo name>.git
> git push -u origin main

私のチームはGitの代わりにTeam Foundation Version Control (TFVC) を使用しています。どうすればよいですか?

Azure Repos 拡張機能を使用すると、TFVCのサポートが有効になります。

なぜPull、Push、Syncアクションが完了しないのですか?

これは通常、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資格情報ヘルパーの一部です。

これらのプロンプトを回避する1つの方法は、資格情報を記憶する資格情報ヘルパーを設定することです。

もう1つのオプションは、次の設定を変更して自動フェッチ機能を無効にすることです: "git.autofetch": false

なぜVS Codeはgitリポジトリが潜在的に安全でない可能性があると警告するのですか?

VS Codeは、すべてのGit操作を実行するためにgit.exeを使用します。Git 2.35.2以降、リポジトリが潜在的に安全でないと見なされるため、現在のユーザー以外のユーザーが所有するフォルダー内のリポジトリでGit操作を実行することはできなくなりました。

そのようなリポジトリを開こうとすると、VS Codeはソース管理ビューにウェルカムビューを表示するか、エラー通知を表示します。ウェルカムビューと通知の両方に [Manage Unsafe Repositories (安全でないリポジトリを管理)] コマンドが含まれており、これにより潜在的に安全でないリポジトリのリストを確認し、安全としてマークして開くことができます。[Manage Unsafe Repositories (安全でないリポジトリを管理)] コマンドは、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) でも利用できます。リポジトリを安全としてマークすると、リポジトリの場所が safe.directorygit設定に追加されます。

Windowsでは、これが起こりうる一般的なシナリオは、リポジトリが「管理者として実行」されているアプリケーション (たとえば、Windows TerminalやVS Code) を使用してクローンされたが、そのリポジトリが「管理者として実行」されていない別のアプリケーションやインスタンス (たとえば、VS Code) を使用して開かれた場合です。

なぜVS Codeはワークスペースや開いているファイルの親フォルダーにあるGitリポジトリを検出しないのですか?

VS Codeは、Gitリポジトリのルートを特定するためにgit rev-parse --show-toplevelを使用します。ほとんどの場合、Gitリポジトリのルートはワークスペース内にありますが、Gitリポジトリのルートがワークスペースや開いているファイルの親フォルダーにあるシナリオもあります。ワークスペースや開いているファイルの親フォルダーにあるGitリポジトリを開くことは、上級ユーザーにとっては優れた機能ですが、新規ユーザーにとっては混乱を招く可能性があります。この混乱が、これらのGitリポジトリからの変更を破棄してデータ損失を引き起こしたケースが見られました。

混乱を避け、データ損失のリスクを減らすために、VS Codeは通知と新しいウェルカムビューをソース管理ビューに表示し、ワークスペースと開いているファイルの親フォルダーからGitリポジトリを自動的に開きません。

親フォルダーからのGitリポジトリの処理方法は、git.openRepositoryInParentFolders設定を使用して制御できます。以前の動作に戻したい場合は、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アカウントでサインインするように求められます。