📝
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
■ よくある使い方
ログやキャッシュなどのディレクトリだけを登録したい場合
-
該当ディレクトリ内に下記.gitignore作成
*
!.gitignore -
するとディレクトリをgit addできる
detached HEADについて
HEADはgitのcommitを指す(レコードの針のように)。
gitの HEAD は通常branchの先頭を見ている。git checkout commit_IDを実行するとHEADはbranch先頭から特定のコミットに移動する。
この状態を detached(:切り離された)状態としてgitは表現する。
リポジトリの複製(distを指定しない場合同じ名前になる)
git clone source [dist]
Discussion