Gitが、おもしろいほどわかる基本の使い方33_Chapter2-01(前編) | デザインってオモシロイ -MdN Design Interactive-

Gitが、おもしろいほどわかる基本の使い方33_Chapter2-01(前編)

2024.4.27 SAT

【サイトリニューアル!】新サイトはこちらMdNについて

Gitが、おもしろいほどわかる基本の使い方33

[Chapter2-01]

変更をコミットする(前編)


それでは、いよいよSourceTreeを操作して、Git のバージョン管理がどのようなものか学んでいきましょう。本節では、まず最初に覚えるべき、ファイルの変更履歴を保存するコミットという操作を取り上げます。ファイルの新規作成、削除、ファイルの内容変更など、さまざまな変更はすべてコミットの対象となります。※今回は前後編に分けて掲載します。
2015年7月8日/TEXT:大串 肇

Git



■コミットとは?

 実際に開発が始まると、新しいファイルを作成したり、既存のファイルの内容を書き替えたり、不要なファイルを削除したり、ファイル名を変更したり……さまざまな編集作業が行われていきます。そうした変更にメッセージをつけてリポジトリに登録する操作を「コミット」(commit)といいます。

 「1-05 コミットする手順を覚える」(本書P.028を参照)では、まずはコミットしてみることを目的に、操作方法を駆け足で説明しましたが、ここでもう少し詳しく見ていきましょう。

 リポジトリ内では、コミットを行うことで、変更の履歴が時系列につながった形で記録されていきます。利用者は、これまでに、どのファイルのどの箇所が変更されたのか、またその変更はいつ誰が行ったのかなどを知ることができます。また、コミット単位で、過去にさかのぼってファイルを取得したり、現状のファイルをある時点まで戻したりすることもできます。

 このようなコミットの履歴は、SourceTreeでは「ログ」タブに表示されます【図1】【図2】 。


SourceTreeでのコミット履歴の表示
「1-07 本書のデモリポジトリを利用する」でクローンした本書のデモリポジトリには、
すでにいくつかのコミットがあります。

Mac版の場合
Mac版SourceTreeでは「ログ」タブは存在しません。なお、メインウィンドウが
開いていない場合は、リポジトリブラウザで目的のリポジトリ名をダブルクリックします。



■コミットは「ステージに追加→コミット」の2段階で行う

まず、コミットはステージに追加(add)→コミットという2段階で行うということを覚えておきましょう【図3】 。どうして2段階なのかは後述しますので、早速実際にコミットを行ってみましょう。


コミットまでの流れ

index.htmlのtitleの「ミクロネシア」をハワイアンに変更 ①サンプルには「1-07 本書のデモリポジトリを利用する」でクローン済みのローカルリポジトリを利用します。index.htmlのtitleの「ミクロネシア」をハワイアンに変更してみます。
<title>ミクロネシアプレミアムリゾートホテル</title>

<title>ハワイアンプレミアムリゾートホテル</title>

ソースコードの追加(緑+)と削除(赤-)の状態 ②コミット履歴に「コミットされていない変更があります」(Macでは「Uncommited changes」)と表示されます。これをクリックすると、下部に「作業ツリーのファイル」として「index.html」が表示されます。

SourceTreeが反応を示さない場合は「表示」メニューの「更新」を選択してみてください。

③右カラムには、ソースコードの追加(緑+)と削除(赤-)の状態が、ひとつ前のコミットと比較されて表示されます。

④「index.html」左側のチェックボックスをクリックします。「index.html が上側の「indexにステージしたファイル」の欄に移動します。これでステージに追加されました。

画面上部ツールバーの「コミット」ボタン ⑤画面上部ツールバーの「コミット」ボタンをクリックします。


画面下側のテキスト入力欄 ⑥画面下側のテキスト入力欄にコミットメッセージを入力します。ここでは「タイトルをミクロネシアをハワイアンに変更」と入力しました。

画面右下の「コミット」ボタン ⑦画面右下の「コミット」ボタンをクリックします。



コミットツリーが伸びた確認" ⑧コミットが完了し、1つグラフ(コミットツリー)が伸びたことが確認できます。右下のカラムでコミットの内容を閲覧することもできます。



【MEMO】1コミット先行(「1 ahead」)
前ページの手順⑧の図を見ると、行ったコミットに「1コミット先行」(Macでは「1 ahead」)と表示されています。これはクローン元であるBitbucketに対して1コミット先行したということを示しています。そのすぐ下に、origin/masterとorigin/HEADという表示がありますが、こちらはBitbucket 上のブランチの最新の位置を示しています。このように、SourceTreeでは、ローカル(自分のPC)とリモート(今回はBitbucket)のそれぞれのコミットの状態を簡単に一覧してみることができます。




■コミットはひとつの作業ごとに行う

コミットは一作業ごとに"  ファイルを編集していく過程で、どのタイミングでコミットするのが正しいのか、さまざまな考え方がありますが、基本的にはひとつの作業を終えるごとにコミットすることが望ましいでしょう【図4】 。これは、コミットごとの作業が明確になるとともに、もしコミットした内容が間違っていた場合にも修正を行いやすくするという意味があります。コミット単位でしかファイルの復元ができないため、多くの作業を同時にコミットすると、それらをすべて戻さないといけないケースも発生してしまいます。

 とくに、同時に複数の人が作業している場合には、より1作業ごとにコミットし、変更情報を共有していくことを心がけましょう。プロジェクト全体の実作業の進捗具合が明確になります。また、メンバー間での作業の重複や、衝突を避けることにもつながります。

 もしプロジェクトにおいて、課題管理ツールなどを利用している場合は、その1課題ごとにコミットを行うということを目安にするとよいでしょう。


【MEMO】ステージの役割
変更したファイルをコミットする前にステージに追加するという作業は不要にも感じられます。では、なぜこの作業を行うように設計されているのでしょうか。これには理由があります。前述した通り、コミットは一作業ごとに行うのが基本ですが、作業を集中して進めた結果、複数の作業を一度に進めてしまうこともあるでしょう。そんなときに、変更されたファイルから1作業ごとにステージにピックアップすることで、1コミットで1作業を実現することができます。


【MEMO】コミットメッセージの内容
コミットには「コミットメッセージ」と呼ばれる、コミットの説明文の記載が必要です。端的で誰が見てもわかりやすいコミットメッセージを記載するように心がけましょう。1コミットで1 作業とも目的が重なりますが、複数の作業を一度に行って「いくつかの修正に対応」などとメッセージをつけてまとめてコミットなどというやり方では、ほかのメンバーは何をどうして変更したのかさっぱりわかりません。せっかくのGit によるバージョン管理の利点が失われてしまいます。





株式会社サイバーエージェント 【BOOKS紹介】
バージョン管理システム「Git」の入門書。はじめて使う方でも業務に取り入れやすいよう、「これだけは覚えておきたい機能」に絞り込んで解説しました。SourceTree(GUIツール)とホスティングサービス・Bitbucketを用いた解説内容になっており、初心者の方でもGitやSourceTreeを活用する状況をイメージしやすいよう、イラストや図、実際のツール画面を豊富に掲載。実制作や業務の中に手軽にGitを取り入れ、生産性を向上したいという方に最適の1冊です。


●書籍ページ:http://www.mdn.co.jp/di/book/3214203010/
●Amazon:http://www.amazon.co.jp/exec/obidos/ASIN/4844365010/mdndi-22/
twitter facebook このエントリーをはてなブックマークに追加 RSS
【サイトリニューアル!】新サイトはこちらMdNについて

この連載のすべての記事

アクセスランキング

8.30-9.5

MdN BOOKS|デザインの本

Pick upコンテンツ

現在