GitHub に対する認証が完了すると、Visual Studio で GitHub ワークフローを改善できます。 これらの機能強化の 1 つは、1 回のクリックでローカル プロジェクトを GitHub に直接プッシュ (発行とも呼ばれます) する機能です。 単純な Git ワークフローの最後のステージは、変更をリモートにプッシュすることです。
リモートとは、ローカル コンピューター以外の場所でホストされている Git リポジトリへの参照であり、origin/main (または origin/master) と呼ばれ、"origin" はリモートの既定の名前です。 この用語の詳細については、Git Web サイトの Git Branching - Remote Branchs ページを参照してください。
この記事では GitHub リポジトリを参照していますが、GitHub、GitLab、Azure DevOps など、好みの Git プロバイダーをリモートで操作できます。
Visual Studio でリモートにプッシュする方法を次に示します。
ファイルに変更を加えて保存し、[Git の変更] タブ を選択してから、変更をコミット します。
Git Changes ウィンドウで、受信コミットと送信コミットの数を含むリンク テキストに注目してください。 次の例では、リンク テキストは 1 発信/0 着信を読み取ります。
"発信" テキストは、まだリモートにプッシュされていないコミットの数を表し、一方で"着信" テキストは、フェッチ済みでまだリモートからプルされていないコミット数を表します。
リモートにプッシュするには、[プッシュ] ボタン (上向き矢印) を選択するか、Git メニュー [プッシュ] を選択します。
ローカル ブランチがリモート ブランチの背後にある場合、git は通常のプッシュを許可せず、次に何を行うかを求められます。 次のようにすることができます。
プルしてからプッシュする。 リモート ブランチで最新の変更を取得し、変更をリモート ブランチにプッシュする場合に使用します。 これは、競合する変更がなく、最新の状態を保ちたい場合に適切に機能します。
プル. ローカル ブランチを更新しますが、変更はプッシュしません。 このオプションを使用すると、変更を再度プッシュする前に、変更を検査したり、競合を解決することができます。
(有効にした場合) プッシュを強制します。 ローカルブランチを更新せずに変更をプッシュする。
強制プッシュを有効にするには、 Tools>Options>All Settings>Source Control>Git Settings に移動し、 プッシュの有効化 --force-with-lease を有効にします。 このオプションの目的は、リモート リポジトリで変更が行われた場合でも、他の変更を上書きせずにプッシュを試みられるようにすることです。 このオプションの詳細については、 この Stackoverflow の質問 と Git プッシュの公式 ドキュメントを参照してください。
このオプションを有効にした場合、プロンプトで Pull オプションは使用できません。 git フェッチ、プル、プッシュ、同期で説明されているように、通常どおりプルできます。
キャンセルする。 何も起こりません。 リモート ブランチからの変更はプルされず、変更はプッシュされません。 ローカル ブランチはまだ最新ではありません。