GitHub Desktopの使い方についてまとめています。
GitHub Desktopの使い方
GitHub Desktopは、ソースコードをGit管理するためのGitクライアントです。シンプルなGUIで、必要最低限に機能が絞り込まれているため、使い方を覚えるための教育コストを最小限に抑えられる点が特徴です。
GitHub Desktopのインストールやリポジトリのクローンについては、以下の記事を参照してください。
【関連記事】
▶GitHub DesktopはWindows用Gitツール インストールと使い方の解説
リポジトリをローカルにクローンした前提で、GitHub Desktopでブランチを作ってファイルを修正、コミットをおこなってリモートにプッシュし、プルリクエストを送ってmainブランチにマージするまでの手順を実際にやってみましょう。
GitHub Desktopでブランチを作成
Git管理されたリポジトリでソースコードを修正するためには、修正用のブランチを作って他の人の修正作業に影響が出ないようにします。(複数人で開発作業をおこなう場合)
Current branchタブに「main」と表示されているのを確認し、クリックします。その後、New branchをクリックします。なお、ブランチ作成はリポジトリへの読み取りアクセス権限が必要です。
ブランチは、Current branchに表示されているブランチをベースに作成されます。複数のブランチがある場合にはベースになるブランチを選択しておく必要があります。
Create a branchダイアログが表示されるので、ブランチ名を入力し、Create branchボタンをクリックします。ここではブランチ名を「work1」としました。
ブランチの作り方やマージのポリシーに関しては、Git FlowやGitHub Flowなどいくつかの考え方があります。
【関連記事】
▶GitHub flowは、GitHub創設時にも使われたワークフローで、シンプルなブランチモデル
なお、Branchの操作は、画面上部のメニューからも実行可能。Branchのリネームや削除、スカッシュやリベースなども可能です。
リポジトリ管理者は、ブランチの保護を有効化できます。保護されたブランチの場合、ブランチの削除やプッシュはできません。
ブランチを作成すると、Current branchに新規作成したブランチ名が表示されます。内部的に、git checkoutでブランチが切り替わったことになります。
ソースコードを修正してコミット
ファイルを1つ修正して、コミットしてみましょう。コミットは、ブランチにある1つ以上のファイルの変更を記録します。
Repository→Show in Explorerを選択し、リポジトリのソースが格納されているディレクトリをWindowsのエクスプローラーで開きます。
ここでは、リポジトリのファイルのひとつ、sample.txtをテキストエディタで修正しました。修正内容は、「修正のテスト」というテキストを1行追加。
ファイルの修正がGitHub Desktopで検知され、修正内容が表示されます。
画面左下にコミットのタイトルと内容を入力し、「Commit to work1」をクリックします。
これでローカルリポジトリへのコミットが実行されました。
なお、複数のファイルの変更を1つのコミットに含めたい場合は、ファイルの変更をおこなったあと、Commitの画面にてコミットに含めたいファイルのチェックボックスを選択します。逆に、複数のコミットに分けることも可能です。コミットを意味のある単位に分割・まとめることであとからソースコードの変更履歴が追跡しやすくなるでしょう。
この画面で、変更を破棄(Discard Changes)することで、ファイルを最終コミットの状態に戻すことも可能です。
ローカルのコミットをリモートリポジトリにプッシュ
ローカルでのコミット内容を他の人がリモートリポジトリからアクセスできるように、プッシュをおこなっていきましょう。
コミットが実行されると、GitHub DesktopにはNo local changesと表示されます。ローカルのコミット内容をリモートリポジトリにプッシュしてみましょう。
「Publish branch」をクリックします。
ローカルで作成したブランチ「work1」が、リモートリポジトリにプッシュされ、反映されます。
ちなみに、プッシュされたブランチは、デフォルトでは自分のブランチのみが表示されるので、複数人で作業をおこなっていても大量のブランチが表示されて混乱することはないでしょう。
プルリクエストとマージをおこなう
GitHub Desktopにて「Create Pull Request」をクリックします。
プルリクエストはGitHub Desktop内ではなく、GitHubのウェブページ上でおこないます。「Open a pull request」にて、Pull Requestのタイトルと内容を入力し、Create pull requestをクリックします。
※この画面は、GitHubのリポジトリページの「Pull Requests」からも開くことができます。
Pull Requestの内容が表示されます。ここではbranch作成者とmainブランチの管理者がともに自分自身なので、自分でpull requestした内容を自分でマージするという作業をおこなっています。実際には、複数人の開発ではレビューとマージは別のメンバーが行うのが一般的です。
今回は、他に同時にソースを修正するメンバーがいないのでソース変更の競合が起こりません。「This branch has no conflict with the base branch」(このブランチとベースブランチとの競合はありません)という表示が出ます。
「Merge pull request」をクリックします。
ボタンが「Confirm merge」に変化するのでクリックします。クリックミスでマージされてしまわないよう、このような仕組みになっているんですね。
Pull request successfully merged and closed.(プルリクエストのマージは成功し、クローズされました)というメッセージが表示されます。Delete branchをクリックして、作業用ブランチを削除します。
ローカルリポジトリの作業用ブランチ「work1」を削除しましょう。
BranchメニューからDeleteを選択します。
作業用ブランチの削除は必須ではありませんが、ローカルリポジトリに不要なブランチが溜まっていき、プッシュするブランチを間違えるなどのミスの可能性もあります。作業済みブランチはこまめに削除するのが良いでしょう。
これで、一連の作業は終了です。ブランチをmainに切り替えて、GitHub DesktopでリモートリポジトリにFetchすると、最新のmainブランチの内容がローカルリポジトリに反映されます。
まとめ
- GitHub Desktopは、リポジトリのクローン、コミット、プッシュが可能
- GitHub DesktopでPull requestを選択すると、GitHubのウェブページが開く
- プルリクエストに対するマージは、GitHubのウェブページ上でおこなう