Git & GitLab 入門 (4) ~Git マスターへの道~「リモートリポジトリとローカルリポジトリ」

はじめに

Git & GitLab入門ブログ Gitマスターへの道の第4回です。前回のGit & GitLab入門ブログ3Gitマスターへの道「Git操作チーム利用コマンドやロールバック」では、チーム開発で使うコマンド、コミットを戻す際に使用するコマンドについて紹介しました。

今回は、リモートリポジトリの解説とリモートリポジトリへのsshキーの登録、リモートリポジトリ(プロジェクト)の作成、リモートリポジトリのクローンなどの操作、その他のリモートリポジトリへの変更を加える操作を実践的に解説していきます。

今回は、Gitのブランチとは何かという基本から、チーム開発でよく使われるブランチ戦略、そしてGitLabでのマージリクエストを通じた具体的な開発フロー、さらにはコンフリクト(競合)の解消方法まで、実践的に解説していきます。

実行環境

OS : WSL2 – Ubuntu 22.04.2 LTS

リモートリポジトリとは?

共同開発においてリモートリポジトリはコードの共有やバックアップなどの役割を担っています。

リモートリポジトリはネットワーク上に存在し、チームメンバーで共有して使うリポジトリです。一方ローカルリポジトリは開発者のパソコン上に存在しており、個人で使用します。

リモートリポジトリとローカルリポジトリはClone, Pull, PushなどのGit操作によってやり取りを行っています。

そこで、チーム開発の現場でこのリモートリポジトリを提供している代表的なサービス、ソリューションについて再度説明します。

GitLab

GitLabはGitの仕組みを利用したDevSecOpsプラットフォームです。DevSecOpsとは開発(Dev)・運用(Ops)のプロセスにセキュリティを組み込み、早期から継続的に安全性を確保する取り組みのことを差します。

GitLabの特徴はこのDevSecOpsとの一体化と組織内で運用できるセルフホスト型であることで、統合型のDevOpsプラットフォームとして優れています。

GitHub

GitHubはGitの仕組みを利用してオンラインでソースコードなどの共有、管理などを行うことができるウェブサービスです。

GitHubは世界中のオープンソースプロジェクトが利用しておりコミュニティが活発であり、個人や企業などで使用されており、オープンソースコミュニティやシンプルなコード管理に優れています。

リモートリポジトリのクローン

GitLabでのリモートリポジトリのクローンの手順を解説します。

※今回はGitLabの手順を解説しますが、「ローカルにSSH鍵を作成して、公開鍵をリモートリポジトリ側に登録し、SSH経由で操作できるようにする」という流れはGitHub等の他サービスにおいても同様です。

ssh設定

まずGitLabに対してssh設定を行います。

自身のターミナルでsshキーを作成します。

Linux準拠のホームディレクトリの指定方法の場合は以下のコマンドで作成できます。

ssh-keygen -t ed25519 -f ~/.ssh/GitLab_key

Windowsの標準ターミナルで実行する場合パスの指定方法が異なり以下のようになります。

ssh-keygen -t ed25519 -f %USERPROFILE%\.ssh\GitLab_key

このコマンドは以下の構成でできています。

  • ssh-keygen 
    • sshキーを生成するためのユーティリティ
  • -t ed25519
    • 鍵のタイプを指定するオプション
  • -f ~/.ssh/GitLab_key
    • 鍵の保存先と名前を指定

以下の画像はsshキー作成時の実行結果です。

~/.sshディレクトリへ移動後コマンドを実行し、その際入力を求められますが何も入力せずにエンターを押して大丈夫です。

sshキーの作成

次にGitLabでこのsshキーを登録していきます。
GitLabへログイン後TOPページから、以下の画像のように自分のユーザーのアイコンから設定を開きます。

GitLabのTOPページ

画面左のサイドバーにユーザー設定があるので、ユーザー設定項目からSSHキーの箇所をクリックします。

ユーザー設定内のSSHキー

次に画面右中央の新しいキーを追加をクリックします。

SSHキー追加

先ほど作成したSSHキー(.pubがついているほう)の中身をcatコマンドなどで確認してコピーします。

公開鍵のコピー

キーのセクションに先ほどコピーしたキーの中身を貼り付けます。その他の設定もお好みで入力しキーを作成をクリックします。

SSHキー登録時の設定画面

今回はキーの名前をカスタムしているのでconfigファイルにSSH設定を書き込んでおきます。

vi ~/.ssh/config

viコマンドでconfigファイルを開き

Host (GitLabのホスト名)

    HostName (GitLabのホスト名)

    User git

    IdentityFile ~/.ssh/GitLab_key

このテキストを貼り付けて保存します。これでsshキーの設定ができました。

リモートリポジトリ(プロジェクト)の作成

次にリモートリポジトリ(プロジェクト)の作成です。

ユーザーアイコンの隣の+マークから新規プロジェクト/リポジトリをクリックします。

GitLabのTOPページから新規プロジェクト作成

プロジェクト作成方法の選択画面です。今回は空のプロジェクトの作成をクリックします。

プロジェクト作成補法の選択画面

プロジェクトの設定画面です。プロジェクト名などを入力してプロジェクトを作成をクリックします。

プロジェクト作成設定画面

これでリモートリポジトリ(プロジェクト)の作成ができました。

GitLabからのGit clone

次に先ほど作ったリモートリポジトリ(プロジェクト)をローカルにcloneします。

プロジェクトのホーム画面で画面右側の上のほうにある「コード」という箇所をクリックします。そうすると以下のようなボックスが出てくるので「SSHでクローン」のURLをコピーします。

プロジェクトのTOPページ

リモートリポジトリ(プロジェクト)をローカルリポジトリとして配置したいディレクトリでgit cloneを行います。

git clone (先ほどコピーしたSSHクローンの内容)

を実行します。

以下のような実行結果が出れば成功です。

git cloneの実行結果

リモートリポジトリに変更を反映させる

次にadd,commit,pushを行いローカルリポジトリの変更をリモートリポジトリに反映させていきます。

尚、今回はブランチを切らずにすべてmainブランチで実施します。ブランチに関しては次回のGit & GitLab 入門 (5) ~Git マスターへの道~「Git のブランチについて」で詳しく取り上げますのでそちらをご覧ください。

今回はmain.pyをローカルリポジトリに追加しました。こちらをリモートリポジトリに反映させていきます。

作成したmain.py

まず、コマンドラインから実行する場合の手順です。

最初にadd を行います。これにより指定されたファイルはステージングエリアに追加されます。

git add (ファイル名)

次にcommitを行います。これによりステージングエリアの変更をローカルリポジトリに保存します。

git commit -m "コメント"

最後にpushを行います。これによりローカルリポジトリの変更がリモートリポジトリに送信されます。今回はmainブランチに直接変更を加えるのでオプションなどは付けずにコマンドを実行します。

git push

以下の画像はコマンドラインで一連の流れを実施した際の実行結果です。

コマンドラインでのadd, commit, pushの実行結果

VScodeから実行する場合以下のようになります。

add

ソース管理のファイル名の右端にある+ボタンを押すとファイルをステージングエリアに追加できる。

VScodeでのgit addの実行例

commit

メッセージのテキストボックスにコメントを書き込みコミットボタンを押すとステージングエリアの変更をローカルリポジトリに保存することができる。

VScodeでのgit commitの実行例

push

変更の同期を押すとローカルリポジトリの変更がリモートリポジトリに送信される。

VScodeでのgit pushの実行例

まとめ

今回はリモートリポジトリの解説とリモートリポジトリへのsshキーの登録、リモートリポジトリ(プロジェクト)の作成、リモートリポジトリのクローンなどの操作、その他のリモートリポジトリへの変更を加える操作を実施しました。これにより、Gitを活用してリモートリポジトリとの連携やプロジェクトの作成・管理、ローカル環境でのクローン、ローカルリポジトリでの変更内容をリモートリポジトリに反映できるようになりました次回は、Gitのブランチについての説明とチーム開発でのブランチの実例を紹介します。

参考文献

https://wa3.i-3-i.info/diff811repository.html

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です