はじめに
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ディレクトリへ移動後コマンドを実行し、その際入力を求められますが何も入力せずにエンターを押して大丈夫です。
次にGitLabでこのsshキーを登録していきます。
GitLabへログイン後TOPページから、以下の画像のように自分のユーザーのアイコンから設定を開きます。
画面左のサイドバーにユーザー設定があるので、ユーザー設定項目からSSHキーの箇所をクリックします。
次に画面右中央の新しいキーを追加をクリックします。
先ほど作成したSSHキー(.pubがついているほう)の中身をcatコマンドなどで確認してコピーします。
キーのセクションに先ほどコピーしたキーの中身を貼り付けます。その他の設定もお好みで入力しキーを作成をクリックします。
今回はキーの名前をカスタムしているのでconfigファイルにSSH設定を書き込んでおきます。
vi ~/.ssh/config
viコマンドでconfigファイルを開き
Host (GitLabのホスト名)
HostName (GitLabのホスト名)
User git
IdentityFile ~/.ssh/GitLab_key
このテキストを貼り付けて保存します。これでsshキーの設定ができました。
リモートリポジトリ(プロジェクト)の作成
次にリモートリポジトリ(プロジェクト)の作成です。
ユーザーアイコンの隣の+マークから新規プロジェクト/リポジトリをクリックします。
プロジェクト作成方法の選択画面です。今回は空のプロジェクトの作成をクリックします。
プロジェクトの設定画面です。プロジェクト名などを入力してプロジェクトを作成をクリックします。
これでリモートリポジトリ(プロジェクト)の作成ができました。
GitLabからのGit clone
次に先ほど作ったリモートリポジトリ(プロジェクト)をローカルにcloneします。
プロジェクトのホーム画面で画面右側の上のほうにある「コード」という箇所をクリックします。そうすると以下のようなボックスが出てくるので「SSHでクローン」のURLをコピーします。
リモートリポジトリ(プロジェクト)をローカルリポジトリとして配置したいディレクトリでgit cloneを行います。
git clone (先ほどコピーしたSSHクローンの内容)
を実行します。
以下のような実行結果が出れば成功です。
リモートリポジトリに変更を反映させる
次にadd,commit,pushを行いローカルリポジトリの変更をリモートリポジトリに反映させていきます。
尚、今回はブランチを切らずにすべてmainブランチで実施します。ブランチに関しては次回のGit & GitLab 入門 (5) ~Git マスターへの道~「Git のブランチについて」で詳しく取り上げますのでそちらをご覧ください。
今回はmain.pyをローカルリポジトリに追加しました。こちらをリモートリポジトリに反映させていきます。
まず、コマンドラインから実行する場合の手順です。
最初にadd を行います。これにより指定されたファイルはステージングエリアに追加されます。
git add (ファイル名)
次にcommitを行います。これによりステージングエリアの変更をローカルリポジトリに保存します。
git commit -m "コメント"
最後にpushを行います。これによりローカルリポジトリの変更がリモートリポジトリに送信されます。今回はmainブランチに直接変更を加えるのでオプションなどは付けずにコマンドを実行します。
git push
以下の画像はコマンドラインで一連の流れを実施した際の実行結果です。
VScodeから実行する場合以下のようになります。
add
ソース管理のファイル名の右端にある+ボタンを押すとファイルをステージングエリアに追加できる。
commit
メッセージのテキストボックスにコメントを書き込みコミットボタンを押すとステージングエリアの変更をローカルリポジトリに保存することができる。
push
変更の同期を押すとローカルリポジトリの変更がリモートリポジトリに送信される。
まとめ
今回はリモートリポジトリの解説とリモートリポジトリへのsshキーの登録、リモートリポジトリ(プロジェクト)の作成、リモートリポジトリのクローンなどの操作、その他のリモートリポジトリへの変更を加える操作を実施しました。これにより、Gitを活用してリモートリポジトリとの連携やプロジェクトの作成・管理、ローカル環境でのクローン、ローカルリポジトリでの変更内容をリモートリポジトリに反映できるようになりました。次回は、Gitのブランチについての説明とチーム開発でのブランチの実例を紹介します。