Gitローカルリポジトリ操作



Git操作(ローカル環境)

ローカル環境におけるGit操作を記載しています。


ローカルリポジトリの作成する。

新規プロジェクトの作成や別のバージョン管理システムからGitに移行する場合など、すでにローカルにGitで管理したいファイルがある場合は、ファイルが格納されているディレクトリで「init」コマンドを実行します。

コマンド実行により「.git」ディレクトリが作成され、Gitリポジトリの管理ファイル等が作成されます。

$ git init

ローカルリポジトリへのコミットする。

管理しているファイルに変更を加えた後、コミットを行うことで変更点がGitに記録されます。

GitではコミットするファイルをIndexにステージングする必要があります。

「git add」を実行した後に「commit」します。


1. 状態の確認

「git status」コマンドで修正ファイルを確認できます。

$ git status

2. ステージング

コミット対象ファイルをIndexにステージングします。

$ git add <コミット対象ファイル>

ステージにカレントディレクトリ以下全てを追加する場合、下記コマンドを実行します。

$ git add .

各ファイルの差分を見て、ステージに追加するか決める場合は下記コマンドを実行します。

$ git add -p

3. コミット

Indexから修正ファイルをコミットします。

$ git commit

「commit -a」実行することで、変更されたファイルを自動的にコミット対象に加えてコミットを実行することができます。

$ git commit -a

コミットをキャンセルする

ステージングのキャンセル

ステージング(git add)から変更ファイルを取り消す場合は下記コマンドを実行します。

$ git rm --cached <ファイル名>

ステージング(git add)から削除するだけでなく、ファイル自体も削除する場合には下記コマンドを実行します。

$ git rm -f <ファイル名>

コミットの取り消し

直前に行ったコミットを取り消すには下記コマンドを実行します。

作業ディレクトリの内容はコミット時のままで、「コミットした」ということだけが取り消されます。

「--soft」オプションは省略できます。

$ git reset [--soft] HEAD^

作業ディレクトリに加えた変更点もコミット前に戻す場合は以下のコマンドです。

$ git reset --hard HEAD^

作業ディレクトリをローカルリポジトリの最新状態にするには下記コマンドを実行します。

indexもクリーンされます。

$ git reset --hard HEAD

コミット後の修正

前回のコミットを破棄して、現在のIndex内容で新しくコミットします。

「reset」と「commit」を実行することと同様の処理となります。

コミットメッセージの修正なども行えます。

$ git commit --amend

差分を確認する。

差分をとる対象はリポジトリ概念ごととなります。

リポジトリの概念

Gitのリポジトリ概念の時系列的要素は以下の通りです。

[HEAD^]----[HEAD]----[Index]----[WorkingDirectory]

HEAD^ = ローカルリポジトリ前回コミット時点
HEAD  = ローカルリポジトリ最新コミット時点
Index = ステージング(addコマンド)
WorkingDirectory = 作業ディレクトリ

diffの取得対象

IndexとWorkingDirectoryの差分を確認します。

$ git diff

WorkingDirectoryとHEADの差分を確認します。

$ git diff HEAD

HEAD とインデックスの差分を確認します。

$ git diff --cached

HEADとHEAD^(コミット間の差分)を確認します。

ドット2つ(..)は空白でも表記できます。

$ git diff HEAD^..HEAD
$ git diff HEAD HEAD^

その他使い方

差分のあるファイル名を列挙する場合は以下のコマンドを実行します。

$ git diff --name-only

コミットログを確認する。

コミットログの一覧は下記コマンドを実行します。

$ git log [ファイル名]

変更対象のファイル名を表示する場合は下記オプションを指定します。

$ git log --name-status

ローカルリポジトリからファイルを取得する。

復元処理

コミット済みファイルを取得する場合には下記コマンドを実行します。

$ git checkout <リポジトリのパス>

一つ前のバージョンの内容をローカルリポジトリから持ってくる

$ git checkout HEAD^ <リポジトリのパス>

作業ディレクトリを指定したコミット時点の状態にまで戻す

引数にはコミットを指定するハッシュ文字列もしくはタグ名などを指定します。

コミット名は「git log」コマンドで表示されます。

$ git revert <コミット名>


関連





スポンサード リンク