📝

gitでよく使うコマンド

に公開

順次修正します。

■ ヘルプ

一般的なコマンド一覧を表示

git help

全コマンド一覧

git help -a

特定コマンドのヘルプ表示

下記のいずれか

git help command
git command --help

ガイド表示

git help -g

ガイド閲覧

git help guide_name

■ 設定系

全設定表示

git config --list

任意の設定項目の表示

git config user.name

ローカル・ユーザ名設定

git config --local user.name ユーザ名

ローカル・メールアドレス設定

git config --local user.email メールアドレス

任意の設定項目の削除

git config --global --unset user.name

■ add系

変更のあったファイルすべてをステージする

git add --all

編集したtrack中のファイルのみaddする

git add -u

git addをすべて解除

git reset

任意のファイルのgit addを解除

git reset filename

■ ブランチ操作

ブランチ作成

git branch ブランチ名

ブランチ移動

git checkout ブランチ名

ブランチの作成と移動

git branch -b ブランチ名

任意のコミットからブランチを伸ばして作成する

git branch ブランチ名 SHA1ID

ブランチ削除

git branch -d ブランチ名

マージ

取り込みたいブランチに移動してマージする

git checkout 取り込む側ブランチ名
git merge 取り込まれる側ブランチ名

■ タグ操作

タグ追加

git tag -a タグ名 -m "タグ説明文"

特定コミットへのタグ付け

git tag タグ名 -m "タグ説明文" SHA1ID

タグ削除

git tag -d your_tagname

タグ確認

git show tagname

■ コミット履歴閲覧系

ログ閲覧、コミット履歴

git log

ログ閲覧、コミット履歴を簡潔に表示

git log --oneline

親コミットも表示

git log --parents

コミットで変更したファイル名も合わせて表示

git log --stat

ログを数を指定して表示

git log -5

ログをコミットメッセージとハッシュのみ表示

git log --oneline

ログをコミットメッセージとハッシュのみで数を指定して表示

下記は3コミット表示する場合

git log --oneline -n 3

ファイルのどの行がどのコミットで変更された表示

git blame file_name

ステージング、ステージング対象の管理

リポジトリで管理しているファイルのリスト

git ls-files

作業中ファイルとステージングの差分

git diff

ステージングとリポジトリの差分

git diff --staged

ファイルを最後にコミットした状態に戻す

git checkout -- filename

ファイルを最後にコミットした状態に戻す

git checkout HEAD .

ステージングのファイルを編集

作業ファイルを編集後再び下記コマンド

git add

現在のブランチ、作業ファイルとステージングとの比較、ステージングとリポジトリの比較を行う

git status

ステージングエリアと作業ディレクトリからファイルを削除する

git rm filename

■ コミット系

初期化後の空コミット

git commit --allow-empty -m "first commit"

git add --allしてcommit

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

メッセージをタイトルと本文で分ける

git commit -m "コミットメッセージタイトル" -m "コミットメッセージ"

直前のコミットメッセージを変更

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

最後のコミットの状態の特定ファイルを戻す

git checkout -- filename

直前のコミットだけをなくす(作業ディレクトリはそのまま)

git reset --soft HEAD^

■ git stash系

現在のディレクトリの状態を一時退避させる

git stash

スタッシュ一覧を見る

git stash list

スタッシュに退避させていた状態を戻す

git stash pop

■ git上でのファイル管理

管理外ファイル一覧を表示

git clean -n

管理外ファイルを全削除

git clean -f

ファイル名の変更

git mv org_filename new_filename

■ リモートブランチ

リモートブランチ追加

git remote add origin リポジトリパス

リモート名変更

git remote rename 今の名前 変更後の名前

push,fetch先を調べる

git remote -v

■ 変更を取り込む 下記3コマンド

変更をダウンロード

git fetch

差分を確認

git diff HEAD FETCH_HEAD

↑で差分を確認後に統合

git merge FETCH_HEAD

■ 閲覧系

以前のバージョンのファイルを閲覧する

git show リビジョン番号:config/app.php

■ ignoreファイル

ディレクトリに.gitignoreという名前でファイルを作る。.htacessみたいに深い階層にあるignoreファイルが優先される。

無視したいディレクトリを設定する

対象ディレクトリ名/

特定の拡張子のファイルを無視したい場合

下記記述をする

*.拡張子

例: .exe拡張子のファイルを無視したい場合

*.exe

■ よくある使い方

ログやキャッシュなどのディレクトリだけを登録したい場合

  1. 該当ディレクトリ内に下記.gitignore作成
    *
    !.gitignore

  2. するとディレクトリをgit addできる

detached HEADについて

HEADはgitのcommitを指す(レコードの針のように)。
gitの HEAD は通常branchの先頭を見ている。git checkout commit_IDを実行するとHEADはbranch先頭から特定のコミットに移動する。
この状態を detached(:切り離された)状態としてgitは表現する。

リポジトリの複製(distを指定しない場合同じ名前になる)

git clone source [dist]

Discussion