前回はRaspberry Piに自前のGitサーバーをセットアップしましたが、今回はWindowsとMacにそれぞれGitクライアントをインストールして実際にファイルを共有してみます。
以前にセットアップした自前のGitサーバーを使用する前提で解説しています。
挫折した初心者でも出来ます!Gitサーバーを【出来るだけ簡単に】セットアップする方法 |
Gitクライアントは「TortoiseGit」か?「Sourcetree」か?
Gitのクライアントとしては「TortoiseGit」と「Sourcetree」がデファクトスタンダードです。どちらもGitのクライアントとしての機能には大きな違いはありません。
異なるのはGUIで、Sourcetreeは専用のアプリを立ち上げる使うのに対して、TortoiseGitはWindowsのエクスプローラーに統合されます。個人的には仕事でTortoiseSVNに慣れていることもあってTortoiseGitの方が使いやすく感じますが、Sourcetreeの方がブランチの履歴などがグラフィカルで見やすいという意見も多いです。
Sourcetreeはアトラシアンという海外の会社が提供しているソフトで無料で利用できますが、自社のサービスへの誘導があるのでインストールが少し煩雑でわかりにくいです。
しかし、共有するPCにMacが混ざる場合はTortoiseGitにはMac OS版がありませんので、Sourcetreeを選択することになるでしょう。Windowsのみであればどちらでも良いかな?TortoiseGitの方がシンプルかな?くらいの違いです。Souretreeもインストールしてしまえば後は普通に使えます。
Gitクライアント「Sourcetree」のインストールの仕方
今回の私の環境ではクライアントPCにMacBookが混ざりますので、Sourcetreeをセットアップしていきます。まずはWindowsのクライアントにインストールしていきます。下のリンクからインストーラーをダウンロードして実行してください。
インストール時にBitbucketのアカウントが必要になります。この記事を読んでいる人はアカウントをもっていないでしょうから「Create one for free」をクリックしてアカウントを作成します。
BitbucketとはGit HubのようなGitサーバーのクラウドサービスです。SourctreeはこのBitbucketへユーザーを集めるための餌という訳です。Bitbucketは少人数であれば無料で利用できますので、クラウドのサーバーを使うのであれば有力な選択肢となりますが、今回は自前でGitサーバーを立てていますので不要です。しかし、Sourcetreeをインストールするためにはアカウントが必要ですので登録します。
「Create one for free」をクリックするとWEBブラウザが開いてアカウント登録のページが表示されます。メールアドレスを入力すると届くメールに記載されているURLを開くことで認証するよくあるやつです。特にたいした情報を入力することもなく、必要なのはメールアドレスくらいです。
アカウントを登録すると、ブラウザにSourcetreeにGitbucketへのアクセスを許可するページが表示されます。
「アクセスを許可する」をクリックすると、インストーラーが進んで自動的にアカウントが認識されます。「次へ」をクリックすると「Pick tools to download and install」の画面が表示されます。
「Mercurial」はGitとは別のバージョン管理システムです。必要ないと思いますが、なにか支障があるといやなのでそのままインストールしました。更に「詳細オプション」をクリックすると「改行の自動処理を設定する」が「推奨」となっていますので、言われるがままにチェックを入れて「次へ」をクリックすると、インストールが進んで完了画面が表示されます。
「次へ」をクリックすると「Preferences」画面が表示されます。少し日本語でおKな感じですが、モザイクの部分には先程Bitbucketに登録したアカウントが表示されています。今回はBitbucketを使用しませんのでチェックは外した状態にします。
「SSHキーを読み込みますか?」は「いいえ」をクリックしてください。通信の暗号化の設定ですが、今回は使いません。
これでインストール終了です。
Gitにファイルを追加してコミット
まずは上記でインストールしたWindows版のSourcetreeからファイルをGitに追加してみます。
初回は、Gitサーバーと関連づけるために空っぽのリモートリポジトリ(Gitサーバーのデータベース)からクローンします。クローンとはGitサーバーで管理しているファイルやディレクトリを丸ごとクライアントにコピーすることです。
Sourcetreeの「Clone」を選択して、上から順番に前回セットアップしたGitサーバーのURIを入力します。IPアドレスやそれに続くディレクトリなどは自分の環境に読み替えてください。正しければ上のスクリーンショットのように「これはGitリポジトリです」と表示されます。
2番目はクライアント側のディレクトリです。予め作っておいた空のディレクトリを指定しています。
3番目は任意の名前ですのでなんでも良いです。これらを入力したら下の「クローン」をクリックしてください。
すると先程のディレクトリに「.git」というフォルダが出来ます。この.gitにローカルリポジトリの管理情報が保持されます。
それではGit Testフォルダにテキストファイルを追加してみます。内容は「第1版」というテキストを保存してあります。
するとSourcetreeが自動的にファイルを認識して画面に表示されます。左下のファイルを選択すると右上にその内容が表示されます。なお、ここでの内容の表示はUTF-8ですので、メモ帳などの場合は名前をつけて保存で文字コードにUTF-8を選択して保存していないと文字化けします。この画面の表示だけの問題ですのでANSIで保存していて文字化けしていても問題はありません。
それではサーバーに反映させて行きたいところですが、Gitの場合は「ステージ(インデックスに追加)」「コミット」「プッシュ」の3段階の手順が必要です。
「ステージ」とは「このファイルを次回のコミットの対象とします」と宣言することです。左下でファイルを選択した状態で「選択をインデックスに追加」をクリックすると、選択していたファイルが上側に移ります。
これでステージされました。次の「コミット」はローカルリポジトリに変更を反映することです。Gitの場合はリポジトリがリモートリポジトリ(サーバー側のファイル管理データベース)とローカルリポジトリ(クライアント側の以下同)があります。これによってサーバーに反映することなく(=他の人に影響を与えることなく)履歴の管理などができます。ここがSubversionとの大きな違いです。
コミットは「ステージされたファイルをローカルリポジトリに反映する」ことです。コミットに対するコメントを入力して「コミット」をクリックします。「変更をすぐにプッシュする」にチェックを入れれば同時にサーバーのリモートリポジトリにも反映されますが、今回は取り合えずコミットのみします。
しつこく自社サービスであるGitbucketを使わせようとしてくることがありますが、笑顔でチェックを外してOKをクリックすると元の画面に戻りますので、もう一度コミットをクリックします。
コミット後の画面で左の「master」をクリックするとコミットした記録が表示されます。
それではいよいよサーバーに反映します。「ローカルリポジトリの内容をリモートリポジトリに反映する」ことを「プッシュ」と言います。
画面上部の「プッシュ」をクリックして、ローカルブランチのmasterにチェックを入れてからプッシュをクリックします。
するといかにもサーバーに送信してます的なステータスバーが表示された後に画面が戻ります。左のリモート内のmasterをクリックすると、サーバー側のリモートリポジトリの内容が表示されます。
この時点ではリモートリポジトリはローカルリポジトリと内容が一致していますので、表示内容も同じです。
他のPC(MacBook)でファイルを変更してコミット
今度は他のPC(MacBook)へとクローンしてからファイルを変更してコミットしてみます。まずはMacにもSourcetreeをインストールします。インストールの仕方は同じですが、2台目以降はGitbucketのアカウントは登録済ですので、そのアカウントを使ってインストールしていきます。
アトラシアンのHPからダウンロードしたMac OS用のインストーラーを起動します。既にアカウントは作成済ですので「Bitbucketクラウド」をクリックします。
ウェブブラウザが開いてBitbucketへのログインを求められますので、先に作ったアカウントでログインします。
アカウントへのアクセスを許可します。
するとインストーラーが進んで完了画面になります。
「Preferences」画面はWindows版と異なり英語ですが、内容は同じで自前のGitサーバーを使う場合は不要ですのでチェックを外しておきます。
新規の部分をクリックすると表示されるメニューから「URLからクローン」を選択します。
「リポジトリをクローン」の入力もWindows版と基本的に同じですが、ソースURLだけは少し注意が必要です。サーバーのIPアドレスの前の「pi@」は今回GitサーバーをセットアップしているRapberry PiのLinuxユーザー名です。Mac版はこれを指定しないとMacのユーザー名を勝手に付加してしまうようです。かなりハマってしまいました。
「クローン」をクリックすると、ローカルリポジトリにサーバーのリモートリポジトリがコピーされます。
Macで指定したフォルダを確認するとWindows版で追加したファイルがあります。
この「Gitで管理したいファイル.txt」の内容に「第2版」と書き加えて保存し、新たに「Gitで管理したいファイルの追加.txt」を新規作成しました。
自動的にSourcetreeに変更・追加されていますので、それぞれの「…」をクリックして表示されるメニューから「ファイルをステージへ移動」を選択してステージします。
2ファイルがステージされましたので、左上の「コミット」をクリックします。
ステージされた2ファイルをコミットします。今回は「コミットを直ちにプッシュする」にチェックを入れて、ローカルリポジトリへのコミットと同時にサーバーのリモートリポジトリへのプッシュも行います。
コミットのコメントを入力して「コミット」をクリックします。
Windowsでコミット&プッシュした「最初のコミットだよ!」の上にMacからコミット&プッシュした「MacBookからのコミットだよ!」が履歴として積み上がったのがわかりますね。
では、WindowsのSourcetreeに戻ります。F5キーを押して表示を更新するとリモートリポジトリの内容が反映されますので、左上の「プル」をクリックして表示されたダイアログで「OK」をクリックすると、リモートリポジトリのファイルがローカルフォルダにコピーされます。
フォルダを確認するとMacで変更・追加したファイルがコピーされています。
ここまで出来れば、あとは「この時点に戻したい」とか「ブランチ(ファイルの履歴を分岐)したい」とかネットで検索すればやっていけるでしょう。
先に書いたようにSourcetreeは海外製ですし、Bitbucketへの誘導があるので特にインストールの手順が判りにくいのですが、インストールしてしまえば以降は普通に使えます。
Gitサーバーも、超省電力で常に電源を入れておけるRaspberry Piと相性が良いですね。私も電子工作としては全然活かせていませんが、家庭内サーバーとして非常に重宝しています。規模が小さめのオフィスなどにもおすすめです。
MacBook Proと比較すると見えてくる「MacBook Airは情弱向け」な理由 | |
気になるAmazon Echoの電気代は?実際に消費電力を計測してみました。 | |
ミラーレスカメラの「EVFの遅延」とはなにか?なぜ起こるのか? |
マイクロソフト Surface Go (128GB/8GB) MCZ-00014