Git の使い方 ~リポジトリへ変更内容を記録する方法~ | サービス | プロエンジニア

    Git の使い方 ~リポジトリへ変更内容を記録する方法~

    • このページをはてなブックマークに追加

    公開日:2017年02月21日 最終更新日:2019年09月26日

    gitでバージョン管理するフォルダー内のファイルに変更があった場合、どのようにリポジトリへ反映させるのかを実際にGit Bashを使いながら確認します。

    目次

    1. ファイル管理の流れ

    Git の使い方 ~リポジトリの作成とコミット~」では、リポジトリの初期化からコミットまでの動きを確認しました。Gitでバージョン管理する際には、次の3つ場所(状態)をきちんと把握しておく必要があります。

    「作業ディレクトリー(ワーキングディレクトリー [Working directory])」
    「ステージング・エリア(インデックス [Staging area])」
    「リポジトリ [Repository] 」

    簡単にまとめると「作業ディレクトリー」は、ファイルの追加・作成や編集を行う場所、「ステージング・エリア」は変更のあったファイルを一時保管する領域、「リポジトリ」は最終的にファイルを保存する場所です。Gitでは、作業ディレクトリにあるファイルなどが編集・追加された場合に、直接リポジトリにコミット(保存)をせず、まずはステージング・エリアに追加・編集情報を登録します。ステージング・エリアをうまく利用することで、作業ディレクトリー内でリポジトリにコミットする必要のあるファイルのみをコミットしたり、ファイルの一部の編集履歴のみをリポジトリに反映する事ができるようになります。具体的にどのような状態なのかを「Git Bash」を使って確認してみましょう。

    ▲ページトップへ戻る

    2. 作業ディレクトリー

    Git の使い方 ~リポジトリの作成とコミット~」でリポジトリに登録した「Git-ws」フォルダーを元にファイルの追加・編集を行います。「Git-ws」フォルダーにはリポジトリに登録してあるファイル(git-sample.txt)が一つある状態です。「git init」でリポジトリの初期化をしたフォルダーが「作業ディレクトリー」になります。
    Windowsのスタートメニューから[すべてのアプリ]→[Git]→[Git Bash]を選択してターミナルを起動して下さい。プロンプトに「git log」を入力して現在のファイルの履歴を確認してみましょう。

    ●[git log]

    $ git log
    commit 83e280f9e3d6959c75674eef5fa271e981aa25a1
    Author: Taro Yamada
    Date: Tue Feb 21 00:00:00 2017 +0900

    projectX version1.0

    ▲ページトップへ戻る

    3. ステージング・エリア(インデックス)

    「Git-ws」作業ディレクトリーにファイルを一つ追加してみましょう。「git-sample2.txt」というテキストファイルを「Git-ws」作業ディレクトリーに追加します。この状態で「git status」コマンドをたたいてみます。

    ●[git status]

    $ git status
    On branch master
    Untracked files:
    (use "git add ..." to include in what will be committed)

    git-sample2.txt

    nothing added to commit but untracked files present (use "git add" to track)

    「Untracked files:」は追跡されていないファイルという意味です。Gitでは、リポジトリを作成したフォルダーにファイルの追加や変更がされるとその情報を「git status」で確認する事ができます。英文のメッセージは「Gitで追跡されていないファイル(git-sample2.txt)があるので、コミットするつもりのファイルを[git add <ファイル名>]で追跡して下さい」という意味になります。ではメッセージの通りに新規で追加したファイル「git-sample2.txt」をgitのaddコマンドで追跡(track)してみましょう。

    ●[git add]

    $ git add git-sample2.txt

    ファイルの状態を確認してみましょう。

    ●[git status]

    $ git status
    On branch master
    Changes to be committed:
    (use "git reset HEAD ..." to unstage)

    new file: git-sample2.txt

    addコマンドはコミット前の新規ファイルや変更内容をステージング・エリアに登録するコマンドです。ステージング・エリアに新規ファイル:git-sample2.txt が追加されました。また括弧のなかの英文に「unstage」するには「git reset ...」コマンドを使うとあります。これは、ステージング・エリアに登録されたファイル(=ステージング・エリアにあるファイル)は「git reset ...」コマンドで取り消す(unstage)事もできますという意味です。

    ▲ページトップへ戻る

    4. リポジトリ

    新しく追加したファイルのコミットの準備が整いましたので早速「git commit -m "projextX version1.1"」とコマンドを打ってみましょう。

    ●[git status]

    $ git status
    On branch master
    nothing to commit, working tree clean

    commitコマンドはステージング・エリアにあるファイルの情報を「リポジトリ」に登録するコマンドです。その他に追加するファイルがあってもそれがステージング・エリアにない場合はリポジトリに登録されません。
    現在のファイル情報を「git log」コマンドで見てみましょう。

    ●[git status]

    $ git log
    commit 3610105f0da8d684075a0626cc7c0be03773969f
    Author: Taro Yamada
    Date: Tue Feb 21 00:02:02 2017 +0900

    projectX version1.0

    commit 83e280f9e3d6959c75674eef5fa271e981aa25a1
    Author: Taro Yamada
    Date: Tue Feb 21 00:00:00 2017 +0900

    projectX version1.0

    二つのファイルの変更履歴が「logコマンド」で確認できます。

    【関連文書】WindowsにGitをインストールする方法
    【関連文書】Git for Windows の使い方 ~準備編~
    【関連文書】 Git の使い方 ~リポジトリの作成とコミット~
    【関連文書】 git add の取り消し方法
    【関連文書】 git コマンド ~コミットの取り消し~
    【関連文書】 Gitでブランチを作成する方法

    ▲ページトップへ戻る

    月額単価70万円〜90万円
    勤務地 東京都 渋谷区
    月額単価70万円〜80万円
    勤務地 東京都 目黒区
    月額単価80万円〜100万円
    勤務地 東京都 千代田区
    月額単価80万円〜100万円
    勤務地 東京都 千代田区
    • このページをはてなブックマークに追加

    おすすめ記事

  • ピックアップ

    フリーランス

    【Node.js】バックエンドエンジニア★アドテクノロジー関連企業向け新規開発

    月額単価 :70万円〜90万円

    今後日本でもトレンドになると言われている「Header Bidding」をはじめ アドテクノロジー関連の自社サ...

    フリーランス

    【Ruby】システムエンジニア★女性向け情報コンテンツサービス開発

    月額単価 :70万円〜80万円

    「ファッション」「グルメ」など、欲しい情報が 何でも手に入る女性向けWebアプリケーションの 開発を...

    フリーランス

    【Ruby】システムエンジニア★エネルギー会社比較サービスのWebアプリ開発

    月額単価 :80万円〜100万円

    個人の電力・ガスの自由化に伴い、 事業の勢いに乗るスタートアップ企業にて、 電力・ガスなどのエネ...

    フリーランス

    【Python】システムエンジニア★エネルギー会社比較サービスの分析開発

    月額単価 :80万円〜100万円

    電力・ガスなどのエネルギー会社の料金比較サービスを 運営するスタートアップ企業にて、 電力ビッグ...