【Other】【Git】サイトの開発するならGitを使うと便利だよという話
- 2019/11/04 19:15
- Git
- Visual Studio Code
- Bitbucket
- 2
自分はHTMLやCSSやJavascriptやPHPでサイトを作る系フロントエンドエンジニアなのですが、こんなことで困ったりしていました。
- 過去のある時点の状況に戻りたいことがある
- なんらかの問題への対処としてAルートとBルートの対応を行って相互を比較したいことがある
- 時間が経つと過去にどんな内容の開発をしていたのかわからなくなる
- 複数人で同時に一つのプロジェクトを開発する時、どのファイルが最新かわからなかったり同時に同じファイルを触れなくて不便
こんな状況を解決したいと考えていて、git(ギット)を使えば便利ですよと教えてもらったら本当に便利だったので書いておきます。
gitとは
gitとは、もともとはLinuxで開発された分散型バージョン管理システムの一つです。
とか言われてもピンと来なかったので自分が理解して活用した範囲で紹介します。
変更したファイルとその変更内容を記録できる
特定のファイル群の中で、どのファイルを変更したのか、どう変更したのか、細かく記録(コミット)することができます。
しかも、記録する際には任意のメッセージ(コミットメッセージ)を記載しておけるので、 どんな作業を行ったのか自分の言葉でメモしておくことができます。
※上記スクリーンショットはVisual Studio Codeを使用して差分を閲覧した時のものです。
以前の状態に立ち戻ることができる
git reset
コマンドを使うと、以前のコミットの状態まで戻すことができます。
やってみたけどうまくいかなかった時などに最初からやり直すこととかにならずに済むので便利です。
ファイル群の状態を分岐できる
例えば背景色が白のサイトを、背景色を赤に変えたAルートと、背景色を青に変えたBルートとに分岐する(ブランチを切る)ことができます。
AルートとBルートのブランチをそれぞれ切ったとき、元々の本ルートとAルートとBルートの3本のルートが並行して進行することになります。
切り分けた分岐をブランチと言います。
ブランチは他のブランチに合流(マージ)することもできます。
背景黒のAブランチと背景白のBブランチを切ってみて、相互を比較して、背景白が良かった場合は本ルートにBルートをマージすれば本ルートの背景色が白になります。
ブランチを切り替える(チェックアウトする)と、ファイルの中身だけでなく個数まで変わります。
たとえば、Aルートに画像を追加した場合、Aルートにチェックアウトすれば画像が増えた状態になり、逆にBルートで画像を削除した場合、Bルートにチェックアウトすれば画像が削除された状態になります。
いらなくなったブランチは削除することもできます。
※上記スクリーンショットはBitbucketでリモートリポジトリのコミット履歴を見た時のものです。
複数の端末で同じプロジェクトを進捗状況も含めて共有できる
デスクトップとノートパソコン、自分と誰かなど、同じプロジェクトを異なる環境で同時に開発したい時、使用するファイルそのものをクラウドや大容量保存メモリなどで共有することもできますが、Gitを使えば同じ状態のファイルを複数の環境で同期することができます。
Gitで差分管理すると設定したディレクトリをリポジトリと呼びます。
自身のPCで使用するリポジトリをローカルリポジトリ、ネット上で公開・共有しているリポジトリをリモートリポジトリと呼びます。
リモートリポジトリは共有相手を限定することもでき、限定公開されたリモートリポジトリをプライベートリポジトリと呼びます。
リモートリポジトリからローカルリポジトリを作成(クローン)したり、既存のローカルリポジトリにリモートリポジトリを指定したりして紐付けを行った上で、リモートリポジトリにローカルリポジトリの状況を反映することをプッシュ、ローカルリポジトリにリモートリポジトリの状況を同期することをプルと言います。
巨大なプロジェクトであればあるほどファイルの共有は時間がかかるものですが、プッシュとプルは差分データのみをやり取りするので時間が短くて済みます。
作業開始時にリモートリポジトリからプルして、作業終了時にリモートリポジトリにプッシュする。
それを複数の環境で行えば、常に最新のファイルを複数の環境で共有できます。
同じファイルであっても変更箇所が違っていれば同期作業はGitが勝手にやってくれるので問題はありませんが、同じファイルの同じ箇所に異なる変更を加えるなどして競合(コンフリクト)してしまった場合、競合箇所を確認してどちらの変更を優先して反映させるかを解決する作業が必要な場合があります。
gitは色々難しいけど確かに便利だ
色々専門用語が多かったりgitを利用するためのツールがコマンドプロンプトなどのコマンドラインだったりして敷居が高いように感じますが、さわりだけでも使ってみると確かに今まで難しいと思っていたことが出来るようになって便利なので、チャレンジしてみて損はないと思います。
gitが気になった方は当サイトの他記事や下記のサイトなどでぜひgitについて調べてみてください。
サルでもわかるGit入門:https://backlog.com/ja/git-tutorial/