gitの基本操作

リポジトリの初期化

$ mkdir /var/git/プロジェクト名
$ cd /var/git/プロジェクト名
$ git init

プロジェクトディレクトリ配下にリポジトリのデータを格納する.gitディレクトリが作成される。

.gitディレクトリを使わずプロジェクトディレクトリ直下をリポジトリのデータ格納場所にするには–bareオプションを付加する。

$ git --bare init

リモートから使う場合は以下。

$ git init --shared

無視するファイル、ディレクトリを.gitと同じ階層に.gitignoreファイルを作成し記載する。

$ vim .gitignore
gen
bin/*

空ディレクトリも対象とするには、ディレクトリ配下に.gitkeepファイルを作成する。

$ touch hoge/.gitkeep

ファイルをリポジトリに追加する。変更を加えたファイルをステージする(コミットすべき変更と認識させる)にも同じコマンドを実行。

$ git add ファイル名

サブディレクトリも含めた全てのファイルを追加する場合は下記。

$ git add .

addの取り消し。

$ git reset HEAD

一度もコミットしていない場合の取り消しは下記。

$ git reset

ファイル名変更。-fオプションは大文字小文字区別のため。

$ git mv -f from.txt to.txt

コミットする。

$ git commit -m "コミットメッセージ"

変更が加えられた全てのファイルをコミットするには以下。

$ git commit -a

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

$ git log

作業ツリーのステータスを確認する。

$ git status

ワーキングツリーと最新のコミットの差分を確認する。

$ git diff HEAD

ワーキングツリーとインデックスの差分を確認する。

$ git diff

リモートブランチとの差分を確認する。

$ git branch -a
*master
 remotes/origin/master
$ git diff remotes/origin/master

コミット間で変更があったファイル一覧を確認する。

$ git diff --stat コミット1 コミット2

特定ファイルの変更を確認する。

$ git log -p ファイル

add, commitしたファイル、ディレクトリを削除する。

$ git rm hoge.txt
$ git rm -r hogedir

ワーキングツリーでは残したままindex tree, commitから削除する。

$ git rm --cached hoge.txt
$ git rm --cached -r hogedir

ブランチを作成する。

$ git branch 作成するブランチ名 分岐元のブランチ名

ブランチを切り替える。

$ git checkout ブランチ名

ブランチを削除する。

$ git branch -d ブランチ名

リモートブランチを削除する。(先にローカルブランチを削除しておく)

$ git push origin :ブランチ名

現在のブランチの現在のコミットにタグを付与する。

$ git tag タグ名 ブランチ名

タグを一覧表示する。

$ git tag

タグを削除する。

$ git tag -d タグ名

ローカルのタグをリモートにプッシュする。

$ git push origin タグ名

すべてのタグをリモートにプッシュする。

$ git push origin --tags

ブランチをマージする。(マージ先にマージ元が取り込まれる)

$ git checkout マージ先のブランチ
$ git merge マージ元のブランチ

コンフリクトの解消。

$ git mergetool
$ git add コンフリクトが発生したファイル
$ git merge --continue

コミットの編集。インデックスをHEAD(最新のコミット)に移動する。ワーキングツリーは変化なし。

$ git reset HEAD

resetを戻す。

$ git reset ORIG_HEAD

インデックス、ワーキングツリーをHEADに移動する。ワーキングツリーの情報は失われる。

$ git reset --hard HEAD

特定のファイルの直近のコミットの内容を確認する。

git show HEAD:./hoge/hoge.txt

特定のファイルのみ直近のコミットの内容に戻す。

git checkout HEAD ./hoge/hoge.txt

 

リモートのリポジトリをコピーする。

$ git clone https://hoge.com/hoge.git

リモートにプッシュする。

$ git push

ローカルで作成したブランチをリモートにプッシュする。

$ git push origin ブランチ名

originの確認。.gitがある対象ディレクトリで以下。

$ git config --list

 

■参考文献