GitHub Desktopを使ってみました(2023)

Git
この記事は約11分で読めます。
記事内に広告が含まれています。

勉強の延長で、触りだけご紹介します。

◇前提条件

  • Windows版です。
  • Version3.2.0(2023年3月リリース)です。
  • GitHub.comのアカウント有り。

なお、GitHub DesktopとはGitHub製のGUI操作可能なGitクライアントツールで、一部GitHubの機能にも触れるもの・・・になります。GitHub DesktopはOSSであり、コミュニティは活発な印象を受けました。

では早速!以下、目次です。

インストールしてみます

以下サイトからインストーラを入手します。

GitHub Desktop のドキュメント - GitHub Docs
GitHub Desktop では、コマンド ラインや Web ブラウザーではなく GUI を使用して GitHub と対話できます。 GitHub Desktop を使って、ほとんどの Git コマンドをデスクトップから完了できます。たと...

→ Windowsの場合、10以降で64bitという制約があります。

Ver3.2.0は約130Mバイトでした。

ダブルクリックで早速インストールを進めると、次の画面「Welcome to GitHub Desktop」が表示されるため、「Sign in to GitHub.com」を選択して認証を行っていけば完了です。

ようこそ!GitHub Desktopへ!

インストール作業はそれだけです。

  • 細かいオプション選択はありません。
  • インストール先は選べません。

参考までにインストール先は、ユーザーフォルダー配下の「AppData\Local\GitHubDesktop」です。例えば「C:\Users\na7log\AppData\Local\GitHubDesktop」です。

Gitもインストールしたほうが良いです。

GitHubの公式サイトにも書かれていますが、Gitコマンドを使う際に必要です。

また、GitHub DesktopからVisual Studio Code(VSCode)を起動できますが、VSCodeの要件として「Git」が必要です。何かと便利です。

Git - Downloads
セットアップ画面の抜粋です。

※インストール中は色々なオプションを聞かれますが、全てデフォルトで進めました。

GitHub Desktop触ってみます

クローン&コミット

手始めにリポジトリが無いと何も始まらないため、GitHub.com上の自分のリポジトリをクローンするところから始めます。

リポジトリ「test1」をクローンして、ブランチ「main」にチェックアウトしたところです。

操作画面の抜粋ですが、比較的にすっきりです。

デフォルトでクローン先はドキュメントの「GitHub」フォルダのになるようです。Windowsのエクスプローラで適当なファイルを変更すると、GitHub Desktop上ですぐに変更ファイルとしてすぐに表示してくれます。

また、左下の枠でコミットメッセージを入力してすぐにコミットが可能です。コミットメッセージ入力時に便利だと思った点は、「#」を入力するとIssueの候補を表示してくれる点です。

Issueの候補を表示してくれた!

なお、Push操作は画面左上の「Fetch origin」のところからすぐに実施してくれます。基本操作上で細かい確認メッセージは表示されないため、かなりサクサクな印象です。

エラーメモ

以下のエラーが表示されることがありました。

We cloudn’t find that repository. Check that you are logged in, the network is accessible, and the URL or repository alias are spelled correctly.

→ WindowsのGitHub関係の資格情報をクリア&再試行で改善しました(別環境の接続履歴が残っている状態だとエラーになるっぽいです)

差分表示

グラフィカルに表示してくれます。わかりやすいです。

差分表示です。

使う機会は無いと思いますが、不連続な差分表示は非対応です。

不連続なコミットを選択した場合の差分表示は出来ない。

画像の差分確認もGitHub Desktop上で簡単に出来ました。

試しに、本記事のロゴ画像の「GitHub」って文字を雑に移動編集して実験してみました。比較モードには

  • 2-up
  • Swipe
  • Onion Skin
  • Difference

がありました。一部を画像でご紹介します。

2-upの場合です。
Differenceの場合です(これだと違いはバレバレです)

こうゆう比較でささっと確認できるのはGUI利用時の大きな利点ですね。

Pull Requestsの状況

Pull requestsの状況をGitHub Desktop上で表示出来ます。なお、赤い「×」が付いているのは、Pull requestsのチェックでエラーとなっているためです。

Pull requestsの一覧を確認できる。

Pull requestsのチェック、例えばActionsにおけるエラーです。

Pull requestsのチェックエラーの内容をささっと確認できる。

ささっと試したところ、以下の操作は出来ないようでした。

  • Pull requestの作成
  • Pull requestの編集やクローズ

→ ただし作成についてはGitHub Desktopにボタンがあり、すぐに該当のWEBサイトで作成画面を表示してくれます。(確かにGitHub Desktopになんでも詰め込んでもあまりメリットは感じない。)

ブランチ移動

普通に出来ます。

ブランチ移動の際、変更中のファイルがあった場合の対応がわかりやすかったです。

選択肢として

  • 変更中ファイルをしまっておく(stash)
  • 移動先ブランチに持っていく

があります。

ブランチ移動時の編集中ファイルの扱い

stashを選択していて、元のブランチに戻った際は、

  • リストアする?
  • 廃棄する?

というのを簡単に選択できるのは便利です。Git玄人の方ならコマンドでささっとだと思いますが、Git初心者には心強いのではないでしょうか。

Stashしたファイルの扱い

Conflictsの扱い

普通に検出して案内してくれます。

例えば、

  • 編集中にリモートの同名ファイルが更新
  • コミット後にリモートの同名ファイルが更新

の場合です。

編集中にリモートの同名ファイルが更新されてPullした場合は次のように表示されます。

Unable to pull when changes are present on your branch. The following files would be overwritten.
→ ブランチに変更あるからPull出来ない。上書きしちゃうよ。
編集中に同じファイルが更新された場合の様子。

なお、上記で「Stash changes and continue」を選択した場合は、

  1. ローカルファイルが一時退避(stash)されてPullが動作します。
  2. その後、一時退避したファイルをリストアするか廃棄するかは選択可能です。

リストアした際に、がっつり衝突した場合はお馴染みの画面になります。

自動マージで解消出来ない場合の画面。

変更行の衝突してなければ自動でマージしてくれますが、がっつり衝突した場合は、テキストにお馴染みの文字を反映してくれます。この場合はローカルのエディタで手動で変更すればOKです。

英語表記のため、最初のとっつきにくさはありますが、慣れてしまえば、あぁそうゆうことかってわかりやすいと思いました。

ところで「<<<, ===, >>>」には慣れない。WinMerge使えないのかな?

残念だけどDiffツールの外部指定は出来ないみたい。

※エディタであればVSCODE等を指定できるっぽい(未検証)。
→ あれから検証しました!


なお、バイナリファイルが衝突した場合は、どちらを選択します。

表記がわかりにくいですが、この場合は次の通りです。

  • use the modified file from main ← ローカル
  • use the modified file ← リモート

※この場合はリモート/ローカル間でしたが、ブランチ間であれば、ブランチ名が表示されました。

このようにバイナリファイルの衝突解決もGitHub Desktopで出来てしまいます。Resolveで選択後は「Continue merge」押下でコミットされます。

LFS

GitHub Desktopの触りだけといいながら「LFS(Large File Storage)」も試してみました。GitHubは100MB以上のファイルのPushは出来ません。100MB以上のファイルをPushするにはLFSという仕組みを使います(リポジトリではファイルのポインタを管理して、実体は別のGitHub側のストレージを利用)。

※FreeプランだとLFSのストレージは1GBしかありませんし、転送量の上限もあるのであっという間です。たくさん使うなら、有償契約ないしは保存先をオンプレ等にしたいものです。

100MBプッシュ時のエラー

さて、LFS自体はGitHub Desktopに内蔵されているようです。

GitLarge File Storage および GitHub Desktop について - GitHub Docs
GitHub Desktop には、大きなファイルを管理するための Git Large File Storage が含まれています。

そのため、既にLFSが設定されているリポジトリにおいては、100MBを超えるファイルをダウンロード(Clone、Pull)出来ますし、アップロード(Push)も出来ます。

LFS未設定のリポジトリに初めてLFSを設定する場合、GitHub Desktop単体では出来ないようです。具体的にはWindowsの場合、対象リポジトリで

  • git lfs installを実行する。
  • git lfs trackで対象ファイルを設定する。

です。

WindowsでGitコマンドを扱うためのGit(Git Bashとも呼ばれるのかな)をデフォルトのままインストールすれば、Git lfsも含まれています。

Git - Downloads

GitHub Desktopから「Open in Command Prompt」をクリックすると、該当リポジトリに移動した状態でコマンドプロンプトが表示されます。

Open in Command Promptをクリック。

続けて次のように入力します。今回はお試しのためリポジトリ内の「*.exe」ファイルをLFSとして扱います。

<初期設定>
$git lfs install
Updated Git hooks.
Git LFS initialized.

<対象ファイル>
$git lfs track "*.exe"
Tracking "*.exe"
→ .gitattributesが生成されます。

ここまで実施すれば、LFS未設定だったリポジトリもLFS設定済となり、GitHub Desktopで100MB以上のexeファイルをアップロードすることが出来ます。

実際にはLFS設定は代表者の方がささっと対応してくれると思いますので、他の方は意識することなく、GitHub Desktopを使えば、知らないうちに大容量ファイルが扱えちゃうってところでしょうか。(Gitも少しずつバリアフリーになっているのでしょう)

その他

GitHub Desktopの改行コード

WindowsでCloneしたのですが、テキストファイルの改行コードがCRLFになってしまいました。
けど、GitコマンドでCloneした場合は、LFでした。

設定項目に改行コードの変換に作用する「core.autocrlf」項目があります。

git config -l で確認すると
core.autocrlf=false

であり、改行コードは変換しない、という設定です。
なのになぜ?

調べると、GitHub Desktopは別にgitconfigファイルを持っていました。
例:C:\Users\na7log\AppData\Local\GitHubDesktop\app-3.3.11\resources\app\git\etc

GitHub Desktopの場合、git config -lで表示される結果ではなく、GitHub Desktopのgitconfigが利用されるようです。
(C:\Program Files\Git\etc\gitconfigは使われない。)

解決策

  • GitHub Desktopのgitconfigのcore.autocrlfの値をfalseにする。

※GitHub Desktopのgitconfigからcore.autocrlfを削除でも恐らく問題なし(デフォルトはfalse)。

まとめ

GitHub Desktopをささっと使ってみて、代表的な内容をご紹介しました。

  • 軽くて使いやすいです(GUI操作)。
  • GitだけでなくGitHub機能の一部も使えます(Issue候補表示やPullReq表示)
  • LFS内蔵だけど初回設定はコマンドが必要です。

初心者の方でもオーソドックスな操作をする分には十分ではないでしょうか。複雑な操作はGitコマンドを使う必要がありますが、GitHub Desktopから該当リポジトリに移動した状態でコマンドプロンプトもささっと起動出来ます。

最後までご覧いただき、ありがとうございました。

コメント

Top
タイトルとURLをコピーしました