リモートの Git リポジトリの使用
これまで、ローカルの Git リポジトリの使用についてのみ見てきました。 新しい機能を開発し、いくつかのバグを解決して、それらのすべての変更をローカルのリポジトリにコミットしたら、次は変更をチームで共有します。 これには、変更をリモートのリポジトリにアップロードする必要があります。
アップロードを行う前には、チームの他のメンバーも何らかの変更を加えていないかを確認する必要があります。 そのような変更は自分が行った変更に影響する場合があり、コードの競合が発生する可能性があるため、自分のコードと他のメンバーのコードの変更をマージする必要があります。 この競合は、マージの競合と呼ばれます。 そのような競合をローカルのリポジトリで解決してから、変更をリモートのリポジトリにアップロードします。
ローカルのリポジトリの作成時には、init コマンドを使用しました。 これは、まだリモートのリポジトリに接続していないことを意味します。 リモートのリポジトリとリンクするには、remote コマンドを使用する必要があります。
このリポジトリは、Azure Repos、GitHub、またはその他のプラットフォームでホストすることができます。 Azure DevOps で新しいプロジェクトを作成すると、リポジトリが自動的に作成されます。 このリポジトリには、Azure DevOps のプロジェクトと同じ名前が付けられます。
プロジェクトには、複数のリポジトリを含めることができます。上部にあるリポジトリ名をクリックして + 新しいリポジトリを選択すると、新しいリポジトリをいつでも作成できます。
Azure DevOps は、ローカルのリポジトリをこのリモートのリポジトリと同期するために使用できるリンクを自動的に生成します。 リンクを行う方法は 2 つあります。
まずローカルのリポジトリを作成してから、Push an existing repository from command line (コマンド ラインから既存のリポジトリをプッシュします) セクションを使用してローカルのリポジトリとリモートのリポジトリをリンクさせることができます。 これには、remote add コマンドを使用します。 このコマンドには、2 つのパラメーターがあります。 1 つ目のパラメーターは、リモートのリポジトリを識別する名前です。 既定では、origin という名前が使用されます。 ただし、devops のほうがより適切な場合は devops に変更できます。 2 つ目のパラメーターは、リモートのリポジトリへのリンクです。
git remote add <shortname> <url>
git push -u origin --all
Git の push コマンドについてはこのモジュールの別のユニットで説明しますが、この場合は既存のすべてのデータをリモートのリポジトリにアップロードします。これは、すべてのブランチに対して行われます。 空のリモートのリポジトリがある場合は、このコマンドによって master ブランチが作成され、その他のブランチがある場合はそれも作成されます。 これにより、ローカルの master ブランチとリモートの master ブランチがリンクされます。
ローカルのリポジトリとリンクされているリモートのすべてのリポジトリのリストを取得するには、-v オプションを使用します。
git remote -v
リモートのリポジトリとのリンクを削除するには、remote rm を使用します。
git remote rm <shortname>
また、Visual Studio Code にも、リモートのリポジトリとリンクするためのオプションがあります。 表示、コマンド パレット (Ctrl+Shift+P) を使用して、Git: Add Remote を検索する
まず、名前 (origin など) を入力して、リモートの Git の URL を指定する必要があります。 リモートのリポジトリがリンクされると、ローカルのリポジトリとリンクされていることを示すアイコンが表示されます。 このアイコンは、クリックして 2 つのリポジトリを同期できる同期アイコンでもあります。
次の例のクラウドのアイコンは、まだ push コマンドを実行してリモートのリポジトリにブランチを作成してファイルをアップロードする必要があることを示しています。 このアイコンをクリックすると、変更を公開することができます。
リモートのリポジトリとローカルのリポジトリをリンクさせるもう 1 つの方法は、最初にリモートのリポジトリを作成してから clone 機能を使用してローカルのリポジトリを作成することです。 この方法では、最初にローカルのリポジトリを初期化する必要はありません。 clone コマンドについては、次のユニットで説明します。