前回、はじめてのSourceTree(使い方編)の続きになります。
組織でGitを使う方は多いと思いますが、自分で勉強する環境が欲しい方向けにログを残します。
2018.1.22 追記
私も少しGitの扱いに慣れてきたので、ブログの方に私がよく使うGitコマンドの方をまとめました。
もしよろしければご覧ください。
https://re-engines.com/tag/git/
#GitとGithubの違い
似ている名前の2つ、それぞれどのようなものなのか?
ざっくり違いをまとめます。
Git
バージョン管理システムのことです。
(分散型と集中型がありますが、Gitは分散型です。ここでは割愛しますが、興味のある方は調べてみてください。→集中型バージョン管理システムと分散型バージョン管理システムって)
バージョン管理とは、要は変更履歴を残すことです。
変更履歴はリポジトリと呼ばれるものに保管されます。
例えば、下図のように、開発は時間とともに進んでいきます。
区切りの良いタイミングで今の状態をリポジトリに保存する(コミット)と、仮に「以前の状態に戻したい!」というときでも対応できます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F118817%2F8a13ba69-9c69-317c-f3a2-79aa941849c2.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=cde1b7b054eb2f7a0d6ec233678c18ba)
そして、Gitの特徴といえば、様々な人が共同で作業をすることができます。
元のデータはサーバーなどにある状態で、各人が自分のパソコンにそのデータを持ってきて作業します(クローン)。
ある程度区切りがついたら、そのデータを元のデータに反映させます(プッシュ)。
また、他の人が反映させた変更履歴を自分のパソコンに持ってくることも可能です。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F118817%2F5e55a2fc-12b0-fc4f-1d17-217477755387.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b5e9259a9fe6f4bd6e35de152cfdcec8)
参考資料
「そもそもGitって何?」、「GitとGitHubは何が違うの?」にシンプルに答えるよ
Githubに勉強用のリポジトリを作成する
Githubに登録、ログインされていない方は済ませておいてください。
新規リポジトリを作成します。
画面右上の「+」マークをクリックして、「New repository」を選択してください。
リポジトリの作成画面になるので、リポジトリの名前と、READMEの項目にチェックがついているか確認しておいてください。
(チェックがついていないと、面倒な処理が必要なようです。→Githubにリポジトリを作成してみる)
作成が完了すると、下記のようなページができます。
まだREADME.md
以外ファイルは何もありません。
README.md
はリポジトリを誰かと共有するときや公開するときに重要な役割を持ちます。
今回は自分用なので割愛します。
(README.mdについてはこちらのサイトを参照ください。→わかりやすいREADME.mdを書く)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F118817%2Fac4f1449-2ba3-c3c8-0f6b-bff4fe25083a.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=900989332626f8704cd2075092da6af1)
ついでにマスターデータも作成して、Githubにアップしてしまいましょう。
適当に自分のローカルでファイルを作ってください。
(今回私はmasterディレクトリ
に、適当なHTML文章を書いたindex.html
を作成しました。)
これを先程の画面の「Upload files」からアップします。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F118817%2F99c36eea-9775-b341-7095-d712edf91219.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=591f638693fffca743f5ba1bf6bc3fef)
これも変更履歴として残るため、分かりやすいタイトルと説明をつけましょう。
(何も入れなくてもデフォルトの文字列が入ります。)
よければ「Commit changes」を押します。
そうすると、トップの画面に追加したファイルが表れたと思います。
これで、リポジトリの作成が完了しました。
これをリモートリポジトリと呼びます。
今度はローカルリポジトリを作成します。
SourceTreeでローカルリポジトリ作成
はじめてのSourceTree(使い方編)に書いたことは割愛します。
SourceTreeとは
Gitのクライアントツールと呼ばれ、Gitの操作を簡単にするものです。
私も前回の記事を書くまではターミナルでGitコマンドを打ち込んでいましたが、SourceTreeの方が見やすいです。
クローンする
まずは、先程作成したリポジトリをクローンします。
Github上に、そのリポジトリのURLがあるため、そちらをコピーします。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F118817%2F057c7e52-ca02-22db-1754-5040789ceab4.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=2993db3e5768bfc52da041f14aca2078)
そして、SourceTreeを起動させます。
「新規リポジトリ」→「URLからクローン」を押し、先程コピーしたURLとクローン先のディレクトリを指定します。
(クローン先はには中身が空のディレクトリを用意してあげる必要があります。)
そしてクローンすると、新しくローカルリポジトリが作成されます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F118817%2F4f5e2104-e6e4-a92b-0dbb-9b9e310216c1.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=10cc02585b44d2431acc7561375377d3)
SourceTree上で見るとこのような画面になると思います。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F118817%2F16939b7e-0dce-43d1-cc2c-64764536b139.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=92a5ce20c8b77947d1ae4cae238f215c)
まだ作成したばかりなので、パッとしません。
そこで、作成したローカルリポジトリに新しくファイルを加えましょう。
例えば私は、適当なPHP文を書いたindex.phpを加えました。
そして、コミットまでしてみましょう。
はじめてのSourceTree(使い方編)
そうすると、グラフの方が変化したと思います。
これは、新しく「index.phpを追加」した変更履歴を作成したことになります。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F118817%2Ff06990bc-20c8-9300-da71-5ca6fcc21264.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=0c2155847c8a473a047b43f8b297eb02)
もしコミットの際に、「コミット後、ただちにプッシュする」にチェックを入れた方は既にリモートリポジトリにも反映されています。
(不安な方は、SourceTree上部バーの「プッシュ」に数字がある人は、まだ反映されていない項目があるということです。)
もし未プッシュであれば、プッシュしてしまいましょう。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F118817%2F5c74df7f-8a69-d9df-f750-eeb5cf8cb0fd.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ff4cb36a5c047b82cd50184287966d31)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F118817%2F364104f6-bb40-939a-ba61-6025a02724c2.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=2100481a42861aabbfbf8bb20aefd8ae)
今はmasterブランチしかないため寂しいですが、これから練習をしていけば、グラフがどんどん変化します。
しかし、グラフとして変更履歴を追うことができるため、「このとき何やった」、「あのときこれやった」などが分かりやすくなります。
おわりに
今回は、自分用のGit練習環境を整える方法です。
私も仕事にてGitを使用しておりますが、やはりまだまだ操作が未熟で、練習したいと考えておりました。
練習を実際に製品を開発している環境でやると、ミスしたときが怖いので、やはり自分の練習環境が必要だと思います。
(自分用ならどれだけログがあれようが、リバート、リセットをしようが怒られないので笑)
当面やることは、
- もう1つローカルリポジトリを作成し、わざとコンフリクトを起こした後、それを解決する
- 作業ブランチを複数行き来して作業する(スタッシュ)
- その他、メジャーどころのコマンドしか知らないので、あまり使用しないようなコマンドも使ってみる
などです。
ご参考にしていただければ嬉しく思います。