はじめに
今働いている職場ではGitを使うことはなく、「GitとGitHubなんて同じものじゃないの?」とか思いながら業務外の時間でGitを利用していました。
なので、全然Gitについて理解できてないなと思ったので基礎から学びたいと思い書籍を買って読んで見ました。
この本を選んだ理由としてAmazonのレビュー評価が高く、マンガでわかりやすそうという単純な理由です。
非常にわかりやすくGitについて解説されており、初心者でも十分に理解できる内容なので是非読んで見てください。(最低限でも3章まで読んで欲しいです。)
わかばちゃんと学ぶ Git使い方入門(Amazon)
また、本を読む前はこんなことしかGitについてできていませんでした。
- CUIのみでコマンドをググりながらMasterブランチだけで利用していた
- Git自体ソースコードのバックアップ用途だと思っていた
- GitHubはソースコードを自慢する場所みたいな感覚しかなかった
各端末に各自のリポジトリを持てる
まず、Gitってコミットした後にプッシュするものだと思っていたので、いつも以下のようにコマンド打って利用していました。
- git commit -m "comment"
- git push origin master
だが、本来はコミットしたらローカルリポジトリに反映されて、プッシュすればリモートリポジトリに反映されるとわかりました。
- ローカルリポジトリ:自分の端末のリポジトリ(コミット)
- リモートリポジトリ:GitHubやBitBucketなどのクラウド系のリポジトリ(プッシュ)
なので、ネットワークに繋いでいない環境でもコミットすればチェックアウトなどが可能になるのでGit自体の機能は利用できる...ということです。
また、PCなどが故障してバックアップを取っていない状況でもリモートリポジトリからプルして新しいPCに反映するのもよし、他の作業者のPCのリポジトリが無事ならその人の環境をプッシュした後新しいPCにプルするなどバックアップも便利だなと思いました。
GitHub Flowとプルリクエスト
本書のコラムにあったGitHub Flowの考え方で運用ルールを決めれば開発作業も効率的になることがわかりました。
具体的にはmasterブランチとtopicブランチを併用する方法です。
- master:本番環境にデプロイできる内容に更新するためのブランチ
- topic:新機能の追加や修正するためのブランチ
masterブランチは本番の環境なので、新しいブランチをマージするときはプルリクエストを送ってレビューして反映させてもらうという開発方法になるので今どんな作業やっているのか把握できるのが良いと思いました。
また、このプルリクエストは働いている場所関係なく利用できていい機能だなと思いました。
開発のレビューもGitHubのコミュニティでできたり、外部のSlackなどのツールで連絡を取り合うことも可能なので最近流行り?のリモートワークに適しているなと思いました。
時々connpassで勉強会やハンズオンなどに参加してWeb業界で働いている方と話をするのですが、リモートワークで働いている方を何人か聞いているのでその人たちはプルリクエストなどの機能使って他のメンバーとコミュニケーションを取って開発をしていると考えさせられました。
(そう思っているとWeb業界への憧れが...)
その他
本書の4章以降は応用編またはQ&Aのような形なのですが、スカッシュとスタッシュとチェリーピックは便利な機能だと思いました。
スカッシュに関しては自分のGitHubを見ると同じ名前で何度もコミットするってことが多いので一度にコミットをまとめられる方法が知れて良かったです。
スタッシュは複数人で開発しているときに他の人の作業を手伝う時には非常に便利な機能だと思いました。
チェリーピックはブランチしたコミットを間違えても取り返しのつかない事にはならないのが良いと思いました。
不満点・疑問点
- 紹介された機能については主にSourceTreeでやるときの方法なので、他のGit用GUIソフトでも同じ操作方法では対応できない事
- 4章にあるリベースは使用どころや使う意義があるのかどうかわかりませんでした。(実際の業務で使うことがあるのか誰か教えて欲しいです。)
- あくまでも初心者向けの本書なのでCUIのコマンドについての記載はありませんでした。
- Gitには関係ないが本書に出てくる謎の生命体というキャラクターの存在感が薄かったw