どもどもパープルことメガネこと大串です。 最近なにかと涙もろくなりまして、ちょっと身近な人のBlogとか読むだけでも熱いものがこみ上げたりしています。こういうことって今後も増えていくんでしょうね。母親がやたらめったらテレビに向かって泣いていたのも頷ける今日このごろです。
さてGitHubシリーズですね。前回は GitHubをつかって共同開発! サイトのデザインリニューアルしました !という記事を書きました。もちろん今も共同開発は続いておりまして、次のマイルストーンは月末を予定しております。達成率は25%ですが、なんとなかるでしょう。。。たぶん。。おそらく。
そしてきょうの本題ですね。タイトルの通り、FTPをやめてgitでファイルの送信受信もしてしまおうということです。概念的にはこんなかんじになります。
コマンド的にはこんなふうになります。
ローカルサーバでの作業
リポジトリから最新のファイルを取得(pull)し作業を行う。作業が完了したら、コミットしてリポジトリに送信する(push)という流れです。
git checkout master
// マスターに切り替えるgit pull origin master
// マスターの最新版を取得git branch hogehoge
// マスターから任意のブランチを切るgit checkout hogehoge
// 任意のブランチに切り替える- 修正作業を行う
- 修正作業が終わったら
git add -A
// 修正ファイルを追加するgit commit -m "コミットメッセージ #イシュー番号"
// コミットするgit checkout master
// マスターに切り替えるgit merge hogehoge
// 先ほどの任意のブランチでの作業をマージするgit push origin master
// マスターでプッシュもしくはプルリクエストする
本番サーバでの作業
ssh接続で本番サーバにログインし、最新のファイルを取得(pull)するということになります。
ssh hogehoge
// ssh接続で本番サーバにログインするgit checkout master
// マスターに切り替える (と言うかマスターしか利用しないかも)git pull origin master
// リポジトリから最新のデータを反映する
Gitを利用することのメリット
以上がGitを利用したファイルの本番への反映の流れでした。これらをすることで下記のようなメリットがあります。どれも本当に魅力的内容ですね。
- FTPを使わなくて良くなる
- ファイルを上書きする際にいちいち、バックアップようのダウンロードとか不要
- 複数のファイルを編集していたとしても、アップロード漏れなどが無くなる
- FTPポートを閉じることができるので、セキュリティー面も向上する
- 最悪戻せる
git reset --hard commit番号
とすることで、戻すことができる
- 作業履歴が一目瞭然
- リポジトリに作業履歴が残るため、いつどこで何をしたかが明確になる
- クライアントにもこれだけ作業したよというアピールになる
- 共同作業が可能になる
- 各人がブランチを切り、その中で作業。最終的に
master
にmerge
ということで同時に作業することができる - また同ファイル、同行の作業が重なった際もコンフリクトとして通知されるので、どちらかで上書きされるといった残念なことが無くなる
- 各人がブランチを切り、その中で作業。最終的に
ブランチを切るということが作業の途中に含まれていますが、この手法はGitHub Flowを参考にしています。私も最近教えてもらいました。この辺りのGitを利用した運営手法についてまた次回以降で深めたいと思います。
私含め、まだまだGitに慣れておらず、手探りのため予想以上に時間がかかったりしています。。しかし、きっと慣れればいろいろと便利になるに違いない!という期待のもと誠意努力中です。みなさんも一緒にやってみませんかー。
ということでリポジトリでは絶賛協力募集中です。イシューを立てるもよし、なにかプリクエストしてみるもよし。気が向いたら試してみてくださいね。もちろんダウンロード(git clone)すれば本サイトと同様の見栄えのサイトが出来上がりますよ。※アドセンスは張り替えてくださいね w また、ACFが必須です。この辺りCONTRIBUTE.mdに追記せねば! ということでイシューを立てつつ、また次回お会いしましょう。
Photo by by basykes