物知らずPGの覚え書き

「理解したこと」や「こうやって使えた」などのプログラムの覚え書きとなります

git(コンソールver)の基本的な使い方 ~ワークツリーからローカルリポジトリにコミット編~ [Windows]

はじめに

分散型バージョン管理システムであるgit(コンソールver)について説明していきます。
あくまで個人開発用のgitの基本的な流れしか説明していませんので、ご注意ください。。。

インストー

f:id:YoiTaka:20170728101011p:plain
Windowsを使用しているので、git for Windowsからダウンロードを行い、インストールします。

gitの初期設定

はじめにコミット時の情報として表示されるユーザ名とメールアドレスを登録します。 この登録は最初に一度しておくとその後は必要ありません。

$ git config --global user.name "メインアカウント"
$ git config --global user.email "メインアカウントメールアドレス"

ワークツリーからローカルリポジトリにコミット

流れとしては以下になります。
1. 初期化(init)
2. ワークツリー内のファイルをインデックスに登録(add)
3. インデックスに登録したものをローカルリポジトリに登録(commit)

ローカルリポジトリを作成

Gitで管理したいディレクトリに移動してinitコマンドをたたく。
今回はCの直下に作成した空のSampleディレクトリに対して作業を行っていく。

C:\Sample>git init

Initialized empty Git repository in C:/Sample/.git/

以下のコマンドを実行するとSampleディレクトリ内に隠しファイルの.gitが作成される。

ワークツリーで作成したファイルをインデックスに登録 

前準備として、ワークツリー(Sampleディレクトリ)で適当なテキストファイル(test.txt)を作成し、保存する。
その変更履歴をローカルリポジトリに登録するのだが、ワークツリーで作成したものは直接ローカルリポジトリに登録されるのではなく、一度インデックスを挟む。
つまり、登録したくないものは、インデックスに登録しなければよい。
インデックスに登録するにはaddコマンドを使用する。

//指定ファイルのみ
C:\Sample>git add test.txt    

or

//すべてのファイル
C:\Sample>git add .   

インデックスに登録したものをローカルリポジトリに登録 

この作業のことを一般的にcommitと呼ぶ。

//git commit -m "<コメント>"

C:\Sample>git commit -m "first commit"

[master (root-commit) 4758ce9] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt

ワークツリーとインデックスの状態を確認

以上の作業で、ワークツリーからローカルリポジトリにコミットは完了しているが、正しくコミットできているかを確認していきます。

C:\Sample>git status

On branch master
nothing to commit, working tree clean

以上のログが出力されれば、現在ローカルリポジトリに登録されているものと、ワークツリーのファイルに変更点がないことを示します。つまり、正しくコミットされているということになります。

ローカルリポジトリの変更履歴を確認するには、logコマンドを使用します。

C:\Sample>git log

commit 4758ce9d0951a864e43ecb364eeaf5813c4baedf (HEAD -> master)
Author: <ユーザ名> <メールアドレス>
Date:   Fri Jul 28 09:53:21 2017 +0900
    first commit

おわりに

今回はgitを使ったワークツリー(作業用ディレクトリ)からローカルリポジトリにコミットする方法について説明しました。
元々、私はGUI(GitHub for Windows,Git Kraken etc..)で管理をしていたので、コンソールでの管理を行う際には慣れが必要だなと感じました。
ですので、初めてgitを使う方はコンソールではなく、GUIアプリケーションの使用をおすすめします。

次回はローカルリポジトリにコミットしたものをGitHub上のリモートリポジトリにPushする方法について説明します。

/* パンくずリスト*/ /* カテゴリ階層化*/