【初めてのgit&Sourcetree】ローカルリポジトリの作成と変更をコミットする手順
gitにおける最も基本的かつメインの操作となるのはコミットと言っても過言ではありません。
Sourcetreeでコミットを行う操作手順を見て行きましょう。
目次
1.事前準備。
1)Sourcetreeのインストールについて
Sourcetreeのインストールについては以下の記事を参照してください。
1)説明用フォルダについて
この記事の操作説明にあたっては以下のフォルダ構成とファイル内容とします。
・フォルダ:d:\source\sample
・ファイル名:Lesson01.txt
・ ファイル「Lesson01.txt」の内容
Javascript
php
pythom
Perl
JQery
Ruby
2)隠しフォルダの設定
また、隠しファイルが表示されるように設定しておきましょう。
エクスプローラで「表示」-「隠しファイル」にチェックを付けておいてください。
スポンサードサーチ
2.ローカルリポジトリを作成する。
ではリポジトリを作成しましょう。
ソース管理を自分のPC上で行うには自分のPCでリポジトリを作成します。このリポジトリを「ローカルリポジトリ」と呼びます。
・変更管理したいソースが格納されているフォルダにリポジトリを作成します。
・リポジトリは隠しファイルとして作成されます。
1)「Sourcetree」を起動して「Create」ボタンをクリックします。
2)リポジトリ情報入力
リポジトリはソース管理を行うファイルが格納されているフォルダに対して作成されます。
リポジトリ作成画面にて以下の情報を入力していきます。
①ソース管理を行うファイルが格納されている対象フォルダを指定します。(フォルダは空の状態でも、既にソースが格納されていても大丈夫です)
②リポジトリに分かりやすい名前を付けます。
③「Git」を選択します。
情報の入力後「作成」ボタンをクリックしてください。
※指定したフォルダにファイルが既にある場合は以下のように確認ダイアログが表示されますので「はい」をクリックして下さい。
3)リポジトリ作成
リポジトリが作成され「Sourcetree」の作業ウィンドウが表示されます。
スポンサードサーチ
3.Sourcetree(git)におけるファイル更新の状態遷移について
Sourcetree(git)でファイルの更新をリポジトリに登録する際に3つの状態があることを覚えておいてください。
①作業ディレクトリ | ファイルの更新作業を行う場所 |
②ステージングエリア | コミットしたいファイルを登録する場所 |
③リポジトリ | 確定(コミット)された更新の履歴を管理する場所 |
Sourcetreeの画面は以下のような配置になっています。(ファイルステータス画面)
1)作業ディレクトリ(作業ツリー)
更新管理対象のフォルダにあるファイルが変更されるとSourcetreeが変更を検知してウィンドウの作業ツリーに表示されます。
作業ツリーに表示されているファイルを選択してステージングエリアに登録(画面上では移動)してコミットします。
2)ステージングエリア(ステージ)
コミットしたいファイルを作業ツリーからステージングエリアに移動させます。
このとき必ずコミットメッセージ(変更内容が分かるコメント)を記述します。
3)リポジトリ
コミットされたファイルの変更がリポジトリに登録されます。
4.コミットについて
1)コミットとは
ファイルを更新しただけで変更内容や履歴がリポジトリに登録されるわけではありません。
ファイルの更新後にユーザーがリポジトリに登録するよう指示する必要があります。
リポジトリに対して更新内容を記録する行為を「コミット」と言います。
「ファイルの保存」を行う都度「コミット」する。のではなく、何らかの作業の区切りの時点でコミットを行うことが望ましいと言えます。
また、ファイルの保存において複数の変更作業を行った場合、作業種類に対応した別々のコミットとすることも可能です。
たとえば1つのHTMLファイルに対して同時に「タイトルの変更」と「ボタンの追加」を行った場合、それぞれ変更した行を別々のコミットにするといった具合です。
2)コミットの手順
gitではコミットを行う手順は以下の流れとなります。
①ファイルを変更し保存する。
②コミット対象のファイルをステージする。
③コミットメッセージを入力する。
④コミットする。
では順に操作して見ていきましょう。
スポンサードサーチ
5.コミットの流れ
1)最初のコミットを行います。
まず最初の状態をコミットしましょう。
①作業ツリーにファイルが表示されていますので「全てインデックスに追加」をクリックして「ステージ」に表示させます。
②ステージにファイルが移動します。
このステージにあるファイルがコミットに対象になります。
③ファイルをクリックするとファイルの内容が確認できます。
④コミットメッセージを記入します。
コミットメッセージは同じリポジトリを使用する開発者同士でルールを決めておくといいでしょう。
それぞれのコミットで何を行ったかがわかるように入力することが大事です。
1行目:変更の概要(タイトル付け)
2行目:空行
3行目:変更内容
※作業ツリーからステージへ移動する方法はいくつかありますので状況に応じて使ってみてください。
・コミットに含めたい対象のファイルをクリックしてファイルの右側の「+」ボタンをクリックして移動
・「全てインデックスに追加」をクリックして移動(検出されたファイル全てをステージングエリアに移す場合)
・対象ファイルを選択した状態で「選択をインデックスに追加」ボタンをクリック
・対象ファイルをステージングエリアにドラッグ&ドロップする
⑤コメントを入力したら「コミット」をクリックします。
⑥コミットが完了すると以下の画面になります。
2)2回目以降の変更、コミットを行う。
実際の開発においてコミットはファイルの変更、保存の都度行うのではなく、作業の節目ごとに行います。
例えば「メッセージの変更」、「テキストボックスの追加完了」などです。
中途半端なタイミングだとコミットの数が多くなり戻す先が分かりにくくなります。
①ファイルに行を追加してみる
ファイルの最後尾に1行「Swift」を追加します。
②Sourcetreeのウィンドウを見ると変更を検知して下記に作業ツリーに変更したファイルが表示されています。
③画面左の「master」をクリックする(コミットの履歴が表示されます)と「コミットされていない変更があります。」と表示されています。
④画面上のリボンにある「コミットボタン」をクリックします。
⑤最初のコミット同様に作業ツリーに表示されたファイル(変更が検出されたファイル)をステージに移動させます。
⑥対象ファイルをステージに移動したらコミットメッセージを忘れないように記述後「コミット」をクリックします。
(ステージの移動はファイル名の右の「+」をクリックしてもOKです。)
⑦コミットが完了すると下記の画面に再び戻ります。
⑧「画面左の「master」をクリックするとこれまでの履歴が確認できます。
このような感じでファイルの変更をコミットしつつ作業を続けていきます。
6.コミットをさかのぼって一時的にファイルを過去の状態に戻してみる。
「master」をクリックするとコミットの履歴が表示されますが、この履歴をダブルクリックするとその時点にファイルが戻ります。
試してみましょう。
1)「master」をクリックして履歴を表示する。
2)「1st commit」をダブルクリックします。
3)「作業コピーの切り替えの確認」ダイアログが表示されますので「OK」をクリックします。
4)「HEAD」がダブルクリックした1行目に表示されます。
5)ファイルを開いてみると変更前の状態に戻っていることが確認できます。
この状態はあくまでも一時的なものですのでファイルの変更は行わないこと、確認が終わったら最新のコミットをダブルクリックして元の状態に戻すことを忘れないでください。
正式に状態を戻す方法は「コミットの削除」を行います。次項を参照ください。
スポンサードサーチ
7.コミットを削除してファイルの状態を戻す。
前項では一時的にファイルを過去のコミット時点に戻してみましたが、今度は2回目の変更が不要だったと想定して2回目の更新(コミット)を破棄して過去の時点に戻してみましょう。
1)最初のコミットを右クリックして「現在のブランチをこのコミットまでリセット」をクリックします。
2)確認のダイアログが表示されます。使うモードは「ハード」を選択して「OK」をクリックします。
3)更に確認のダイアログが表示されますので「OK]をクリックします。
4)ファイルを確認すると最初の状態に戻っていることが分かります。
これでファイルに行った変更が無かったことにできましたので引き続きファイル更新することが可能です。
8.まとめ
今回はgitをGUIで操作できるSourcetreeでファイルの更新をコミットしたり変更を無かったことにして元に戻すことが出来るところまで紹介しました。
最初のステップとしてコミットの操作が理解いただけたと思います。
何度か試して操作に慣れてみて下さい。
【初めてのgit&Sourcetree】初心者でも扱いやすいSourcetreeのインストール方法
【初めてのgit&Sourcetree】ローカルリポジトリの作成と変更をコミットする手順
【初めてのgit&Sourcetree】Sourcetreeで変更管理してみよう【いろんなコミット】
【初めてのgit&Sourcetree】同時に変更作業を行える機能【ブランチ】
【初めてのgit&Sourcetree】ブランチの変更を分岐元に反映させる手順【マージ】
【初めてのgit&Sourcetree】別ブランチで同じ行を変更したら【コンフリクト】
【初めてのgit&Sourcetree】変更管理の対象外にする【.gitignore】
【初めてのgit&Sourcetree】githubを理解してアカウントを作成しよう。
【初めてのgit&Sourcetree】githubにリモートリポジトリを作成する
【初めてのgit&Sourcetree】ローカルリポジトリをリモートリポジトリに反映させる方法。【プッシュ】
【初めてのgit&Sourcetree】ローカルリポジトリをリモートリポジトリの最新状態に同期する。【プル】
【初めてのgit&Sourcetree】リモートリポジトリを使おう。【フォーク】