push を使用してコードを共有する
[アーティクル] 03/25/2024
11 人の共同作成者
フィードバック
この記事の内容
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
ローカル Git リポジトリ ブランチ で作業を共有するには、他のユーザーがアクセスできるリモート リポジトリに変更をアップロードします。 Git push コマンドを使用すると、ローカル ブランチからリモート リポジトリの対応するブランチに新しいコミット をアップロードすることができます。 作業をリモート リポジトリと同期 することを選択すると、Visual Studio では push コマンドが使用されます。
Git ワークフローの概要については、Azure Repos Git チュートリアル 参照してください。
コードをプッシュする
ローカル ブランチ に 1 つ以上のコミットを追加したら、コミットをリモート ブランチに "プッシュ" して、作業を共有またはバックアップすることができます。 push コマンドを使用すると、Git ではローカル ブランチがリモート ブランチで最新の状態であるかどうかを確認します。 そうでない場合、Git では、ローカル ブランチを更新するまで、新しいコミットをプッシュできなくなります。 この問題を解決するには、プル することで、ローカル ブランチに存在しないリモート ブランチ コミットを取得できます。 プルされたリモート コミットがローカル コミットと競合 する場合は、変更をプッシュする前に、それらの競合を解決してみてください。
Git push コマンドを機能させるには、ローカル リポジトリをリモート Git リポジトリに接続する必要があります。 リモート リポジトリからローカル リポジトリをクローンした場合は、既に接続されています。 ただし、クローンせずにローカル リポジトリを作成した場合は、ホストされている Git リポジトリに接続する必要があります。 詳細については、Azure Repos Git リポジトリへの接続 に関する記事、および GitHub リポジトリへの接続 に関する記事を参照してください。
ヒント
作業の pull request レビューをサポートするには、ローカル リポジトリの main
ブランチで直接作業しないようにします。 代わりに、コミットをローカルの機能ブランチまたはバグ修正ブランチに保存し、作業の完了時にそのブランチをプッシュします。 Git ワークフローの概要については、Azure Repos Git チュートリアル 参照してください。
Visual Studio 2022 は、[Git] メニュー、[Git 変更] 、および [ソリューション エクスプローラー] のコンテキスト メニューを使用して、Git バージョン管理エクスペリエンスを提供します。 Visual Studio 2019 バージョン 16.8 には、チーム エクスプローラー の Git ユーザー インターフェイスも用意されています。 詳細については、「Visual Studio 2019 - チーム エクスプローラー 」タブを参照してください。
[Git 変更] ウィンドウで、上矢印のプッシュ ボタンを選択してコミットをプッシュします。
または、[Git リポジトリ] ウィンドウから変更をプッシュすることもできます。 [Git リポジトリ] ウィンドウを開くには、[Git 変更] ウィンドウで [発信 / 着信] リンクを選択します。
または、メニュー バーの [Git] メニューから変更をプッシュすることもできます。
Visual Studio 2019 バージョン 16.8 以降のバージョンでは、[チーム エクスプローラー] の Git ユーザー インターフェイスを維持しつつ、Git バージョン管理エクスペリエンスを提供します。 チーム エクスプローラー を使用するには、メニュー バーで [ツール] >[オプション] >[プレビュー機能] >[New Git User Experience] (新しい Git ユーザー エクスペリエンス) のチェック ボックスをオフにします。 どちらのインターフェイスからも Git 機能を同じように使用できます。
[チーム エクスプローラー] で、[ホーム] を選択し、[同期] をクリックして [同期] を開きます。
コミットの作成直後に [同期] を選択して、[変更] から [同期] ビューに移動することもできます。
[同期] ビューで [プッシュ] を選択して、コミットをリモート リポジトリにアップロードします。 これがリポジトリへの最初のプッシュである場合は、The current branch does not track a remote branch...
というメッセージが表示されます。これにより、コミットがリモート リポジトリの新しいブランチにプッシュされたことと、現在のブランチからプッシュされる将来のコミットはそのリモート ブランチにアップロードされることを知ることができます。
ローカル ブランチを別の名前のリモート ブランチにプッシュする必要があることはほとんどないですが、省略されていない Git push コマンドを使用すればこれを行うことができます。
git push <remote repo> <local branch name>:<remote branch name>
ローカル ブランチから同じ名前のリモート ブランチに新しいコミットをプッシュするには、次の簡略化されたプッシュ コマンドを実行します。 リモート リポジトリに同じ名前のブランチがない場合、このコマンドはローカル ブランチと同じ名前とコミットを持つ新しいリモート ブランチを作成します。
git push <remote repo> <local branch name>
リモート リポジトリをクローンすると、Git では、クローンしたリモート リポジトリの URL の短縮形としてエイリアス origin
が割り当てられます。 git remote -v
を実行して origin
エイリアス値を確認します。 origin
エイリアスを手動で追加するには、git remote add origin <remote repo url>
を実行します。 origin
エイリアスを使用すると、プッシュ コマンドをさらに簡素化できます。
git push origin <local branch name>
現在のローカル ブランチから同じ名前のリモート ブランチに新しいコミットをプッシュするには、次の簡略化されたプッシュ コマンドを実行します。 リモート リポジトリに同じ名前のブランチがない場合、このコマンドは失敗します。
git push origin
現在のローカル ブランチが origin
のリモート ブランチを追跡している場合は、プッシュ コマンドを完全に省略できます。
git push
ただし、ローカル ブランチがリモート ブランチを追跡していない場合、プッシュ コマンドを完全に省略すると失敗します。 git remote show origin
を実行して、ブランチの追跡状態をチェックします。 origin
で同じ名前のリモート ブランチを追跡するように現在のローカル ブランチをプッシュ "および" 設定するには、1 回 git push --set-upstream origin <local branch name>
を実行します。 --set-upstream
フラグが存在しない場合、同じ名前のリモート ブランチが作成されます。
ローカル機能 (またはバグ修正) ブランチで作業する場合は、main
ブランチからの最新の変更を使用してブランチを定期的に更新するのが一般的です。 その方法によっては、Git push コマンドがエラーを返すように、機能ブランチのローカル コミット履歴とリモート コミット履歴が分岐する可能性があります。 リモート機能ブランチにプッシュする唯一のユーザーで、ローカル機能ブランチに必要なすべての作業が含まれていることが確実である場合は、Git push コマンドを --force
フラグに使用して、リモート機能ブランチ上のすべてのコミットをローカル機能ブランチからのコミットに置き換えることができます。 他の force
オプションを含む Git push コマンドの詳細については、Git リファレンス マニュアル に関するページを参照してください。
コミットをプッシュしたら、pull request を作成して、変更をレビューする必要があることを他のユーザーに知らせることができます。 承認された場合、変更はリモート リポジトリのターゲット ブランチにマージされます。
次のステップ
関連記事