自家用Gitリポジトリの使い方
リビジョン管理ツール「Gogs」サーバーを自家用に立ち上げました。プライベートなファイルの保管・管理などが主な目的です。
ここでは、その「Gogs」(ごぐす)と、その基盤技術「Git」(ぎっと)の基礎的な使い方を説明します。
(※ ここの説明で取り上げるGogsサーバーはプライベート・サーバーです。したがって、この記事のGogsに関する説明・手順は「中の人」向けです。あしからず。一方、ローカル・リポジトリやTortoiseGitに関する説明は万国共通、一般的にご利用いただけるはずです。)
- Gitツール「TortoiseGit」をインストールする
- リポジトリを作成する(ローカル・リポジトリの作成)
- ファイルをリポジトリに登録する (初めての「コミット」)
- リモートGitサーバーにリモート・リポジトリを作成する
- ローカル・リポジトリとリモート・リポジトリを紐づけて同期を取る
- 終わりに
1. Gitツール「TortoiseGit」をインストールする
WindowsでGitを使う方法はメジャーなものだけでも数種類ありますが、ここでは「TortoiseGit」を使うことにします。「TortoiseGit」はWindowsのエクスプローラとの親和性が高く、とっつきやすいのが特徴です。
「TortoiseGit」をまだインストールしていない場合は、はじめにTortoiseGitをインストールしましょう。TortoiseGitは、https://tortoisegit.org/download/ からダウンロードします。
この記事を書いている時点での最新版は2.12.0でしたので、今回はこれをダウンロードしてインストールしました。Windows 10 なので、64-bitを選択します。また、特にほかの理由が無いなら、最新版をインストールするのが無難でしょう。ダウンロードできたら、早速それを起動してインストールを開始します。
画面がいくつか表示されますが、いずれも画面にしたがって「Next >」ボタンを押していくだけでインストールできます。
最後に「Finish」ボタンを押したらインストール完了です。
なお、各国語対応パックも豊富に用意されているので、TortoiseGitを日本語化して使用することも可能です。各国語対応パックも https://tortoisegit.org/download/ からダウンロードしてインストールしてください。
2. リポジトリを作成する(ローカル・リポジトリの作成)
Gitによるファイルのリビジョン管理を始めるには、最初にリポジトリを作成する必要があります。「リポジトリ」とは、ファイルそのものだけでなくファイル属性、変更履歴など、リビジョン管理に必要な全ての情報を納めておく場所のことです。
リビジョン管理をしたいファイルが置かれているフォルダを、エクスプローラで開きます。ここでは例として、Documents「AndroidProjects」フォルダ内の「DronNews」フォルダをGitでリビジョン管理してみましょう。
右ボタンを押してコンテキストメニューを開き、「Git Create repository here…」を選択します。
「Bare」設定画面で(何もチェックを付けずにそのまま)OKボタンを押します。
これで、空のGitリポジトリが作成されました。
リポジトリの本体は、「.git」という名前のフォルダです。この中にGitでリビジョン管理するためのすべての情報が収められています。ここはGitが管理するフォルダなので、この中身は直接変更したり削除したりしないようにしましょう。
3. ファイルをリポジトリに登録する (初めての「コミット」)
前節でリポジトリを作成できましたが、その中身はまだ空っぽです。各ファイルをGitでリビジョン管理するためには、リポジトリに対してリビジョン管理したいファイルを登録してやる必要があります。Gitでは、この操作を「コミットする」と言います(初回の登録だけでなく、その後の変更差分の登録操作も「コミット」と言います)。
登録するのは簡単で、エクスプローラのコンテキストメニューで「Git Commit -> “master”」を選択するだけです。
そうすると、コミット・ダイアログが表示されます。Gitでは、コミットごとにコメントを登録できます。後から過去のファイルを参照するときに容易に識別できるような、簡潔で分かりやすいコメントを書くように心がけるようにしましょう(日本語を含む各国語で書けます)。過去を振り返ることなんかしないが、とりあえずリビジョン管理したい、という方はどんなコメントでも(あるいはコメント無しでも)構いません。
続いて、このコミット操作で登録するファイルを選択します。通常は、フォルダ内の全ファイルを登録することが多いでしょう。そのような場合は、「All」ボタンを押して一括選択してしまいましょう(選択済みファイルの先頭にはチェックが入ります)。
コメントとファイル選択を終えたら「Commit」ボタンを押します。これにより、リポジトリに対するコミット操作が始まります。
最後に「Close」ボタンを押して、コミット完了です。
特に何も指定しない場合、Git管理フォルダ内の全てのファイルがGitの管理下に入ります(※ 「.gitignore」というファイルで指定することによって、敢えてGit管理下に入れたくないファイルを指定することもできますが、ここでは触れません)。
ここまでの作業で、DronNewsフォルダ内のファイルはコミット操作をすることによって、変更履歴を保存することができるようになりました。
4. リモートGitサーバーにリモート・リポジトリを作成する
前節まででGitの基本環境が整いましたが、Gitのリポジトリは作業フォルダ内にあるので、もしハードディスクがクラッシュしてしまったら、一切の変更履歴が追えなくなるばかりか、ファイルそのものも失われてしまいます。Gitでは、ネットワーク越しのリモート・サーバー上にもリポジトリを持つことができるだけでなく、リモート・リポジトリとローカル・リポジトリを同期する仕組みも実装しています。リモートGit・サーバーとしては、有名どころの「GitHub」「GitLab」「Bitbucket」などが利用できます(ただし、オープンソースとして扱う無料制約版か、あるいは有料版サービスを利用する必要がある)。
本サイトの「中の人」はプライベートGitサーバー「Gogs」を内部ツールとして利用しています。Gogsはまだ開発途上ではありますが、プライベートに利用する分には必要十分です。
ここでは、そんな「Gogs」サーバーをリモート・リポジトリとして利用する際の手順を説明していきます。
はじめに、Gogsをウェブ・ブラウザで開き、「サインイン」を押します。
あらかじめ与えられたユーザ名とパスワードでサインインします。
右上の「+」ボタンを押してメニューを開き、「新しいリポジトリ」を押します。
リポジトリ名を指定します。リポジトリ名は、ローカル・リポジトリと同じ名前を指定しましょう。ここでは「DoronNews」を入力します。「説明」の欄には、簡潔で分かりやすい説明文を書きましょう。ここでは、「自家用RSSニュース・リーダー」と入力します。
画面の下にある、緑の「リポジトリを作成」ボタンを押すとリポジトリが作成されます。
リポジトリが作成されると、ローカル側でやるべき作業のガイドが表示されます。この画面の内容は後で必要になるので、このページをしばらく閉じないでおいてください。
5. ローカル・リポジトリとリモート・リポジトリを紐づけて同期を取る
ローカル・リポジトリとリモート・リポジトリの準備が整ったので、ここでは、両者を紐づけてリポジトリ同志の同期を取れるようにしましょう。
紐づけ作業は、ローカル・リポジトリ側、つまりパソコン側で行います。ローカル・リポジトリの内容物をリモート・リポジトリ側へ送信する、つまり「プッシュ」することによって行います。
はじめに、「DoronNews」フォルダをエクスプローラで開き、右ボタンを押してコンテキストメニューを開きます。「TortoiseGit」–>「Push…」を選択し、「Push」ダイアログを開きます。
「Push」ダイアログで「Manage」ボタンを押します。
ここで、リモート・リポジトリのURLに名前を付ける作業を行います。リモート・リポジトリURLの名前は、慣例的に「origin」が用いられるので、ここでもそれを踏襲しましょう(というか、自動的に「origin」が初期設定されるようになっている)。
リモート・リポジトリのURLは、前節で開いたままにしてあるウェブブラウザの、リポジトリ作成直後の画面からコピーします(下図の水色で選択表示されたURL)。
このURLを「URL:」欄に貼り付けてから、「Add New/Save」ボタンを押します。
これでリモート・リポジトリURLに「origin」という名前が付けられました。「OK」ボタンを押して「Push」ダイアログに戻ります。
「Push」ダイアログの「Remote」欄が「origin」になっていることを確認のうえ、「OK」ボタンを押します。
これにより、ローカル・リポジトリの内容がリモート・リポジトリに「プッシュ」され、同期した状態になりました。
「Close」ボタンを押したら、最初の「プッシュ」が完了です。ローカル・リポジトリの内容が、リモート・リポジトリに送信されて、同期した状態になりました。
終わりに
ひとたびリモート・リポジトリとの紐づけができてしまえば、後やるべきことは、時々両者の同期を取ってやるだけです。ローカル・リポジトリの内容(変更差分)をリモート・リポジトリに送信して同期することを「プッシュ」と呼びますが、その反対に、リモート・リポジトリ側の内容(変更差分)をローカル・リポジトリに送信して同期することを「プル」と呼びます。「両リポジトリの同期を取ってやる」ということは、この「プル」と「プッシュ」の両方を実行する、ということとほぼ同義だと考えてください。
大雑把に言うと、Git管理下のファイルを変更する際の作業手順は、次の手順になります。
- エクスプローラの「TortoiseGit」–>「Pull…」で、リモート・リポジトリからローカル・リポジトリに「プル」。
- 作業フォルダで任意のファイル更新作業を行う。
- エクスプローラの「TortoiseGit」–>「Push…」で、ローカル・リポジトリからリモート・リポジトリへ「プッシュ」。
この手順を守ってさえいれば、楽々ファイルのリビジョン管理ができます。ただし、ファイル更新作業前に「プル」作業を忘れずに行うことが非常に重要です。これを忘れると、いわゆる「コンフリクト」(変更内容同志の衝突)が起きやすくなり、後の作業が面倒になることがあるので、ここだけ注意してください。
スポンサーリンク