Gitコマンド一覧

WEB+DB PRESS Vol.50
「WEB+DB PRESS Vol.50」はじめてのGitをみて勉強しながらコマンドをまとめてみる。

git init
gitでのバージョン管理の最初のコマンド。
バージョン管理の対象のフォルダに移動してからこのコマンドを実行することで、.gitフォルダが出来てバージョン管理の対象になる。

git --bare init
ワークツリーのないリポジトリを作成。

git add .
現在のワークツリーの状態を『記録』する。
まだコミットはされていない。
最後のピリオドまで必要。

git add -u
-uオプションをつけるとワークツリー内の全てのファイルを記録する。

git add -A
新しく作成されたファイルを含めてインデックスに記録する。

git add -p
どの変更を次回のコミットに含めるかを選択して、インデックスに記録する。変更の内容が、論理的に関連性がない場合などに使用する。

git commit
-mオプションを省略すると、エディタが起動し、ログメッセージを残せる。
ログメッセージの基本フォーマットは
・コミットする変更内容の要約
 改行
・変更理由の説明
とする。

ログメッセージを書かずにエディタを終了(:wq)するとコミットを中止するが、Windowsのコマンドプロンプトの場合はエディタが定義されていないので-mオプションか-Fオプションを付けろというエラーメッセージがでる。Git Bash※なら大丈夫。
※スタートメニュー→Git→Git Bash

git commit -m "最初のコミット"
コミットする。-mオプションで、コメントをログメッセージとして記録できる。

git commit -a -m "ログメッセージ"
gitt add -u した後すぐ git -commitのと同義。
ワークツリー内のファイル全ての現在の状態を記録したコミットを作成する。

git commit -v
git commit、git diffの結果がまとめて表示される。

git commit --amend
一つ前のコミットを破棄して新しくコミットする。

git stash
現在の変更を一時的に待避。
戻る際はgit stash pop

git rebase -i HEAD~数字
数字の分だけ前のコミット(3なら3つ前)以降を書き換える

git diff
前回のgit add 以降に加えた変更が確認できる。

git diff HEAD
前回のgit commit 以降に加えた変更が確認できる。

git diff --cached
最新のコミットと、インデックスの違いを表示。

git status
git commitを実行した場合にどのファイルへの変更がコミットされ、どのファイルへの変更はコミットされないかと確認できる。

.gitignore
バージョン管理の対象から除外するファイルを指定する。
これに追加すると、.gitignoreファイルが作成され、
git statusでのUntracked files(バージョン管理の対象外のファイル)に表示されなくなる。
$ cat >.gitignore <<\EOF
>*.tmp #拡張子をワイルドカード指定した場合
>EOF

すでにコミットしてしまったあとで、特定のファイル(例:.DS_Store)を対象から除外するには
ファイルは削除せず対象から除外する場合
git rm --cached -f *.DS_Store
ファイルを削除する場合
git rm -f *.DS_Store

ちなみに、これを行ってからブランチを変更しようとしたときに
Please move or remove them before you can switch branches.
と言われてブランチを変更できない場合は、該当するファイルを移動か削除してから行う。
その場合たとえば.DS_Storeなどを一気に削除したい場合はgitのルートディレクトリで
find . -name .DS_Store -print -exec rm {} ";"
とすると現在のディレクトリ以下のファイルを全て削除できる。※.DS_Storeを削除したいファイル名に。
その後に変更したブランチ先でもgit rmで該当ファイルを対象から除外する。

git log パス
にファイル名を指定すると、そのファイルのログを、ディレクトリ名を指定すると、そのディレクトリ内のログを表示。

すべてのリポジトリで共通して無視するファイルを設定しておくと便利。
git config --global core.excludesfile ~/.gitignore
参考:グローバルな.gitignore を設定して、すべてのgitリポジトリで無視するファイルを設定する

git log --grep=パターン
ログメッセージを文字列を元に検索。複数の--grepオプションを指定した場合はOR検索になる。AND検索にするには--all-matchオプションを加える。
同様に
git log --author='著者名'

git log --comitter='コミッタ名'

などもある。

git log -p -2
-pオプションで、コミットした記録をパッチ形式で出力。
さらに-数字オプションで、出力するコミットの数を制限可能。
--pretty=shortオプションで、ログメッセージの最初の一段落のみ出力。

git show
最新のコミットの内容を表示。

git reset
インデックスを現在のHEADと同じにする。

git reset パス
パスに加えた変更を次のコミットに含めない。

git reset HEAD^
1つ前のコミットの状態に戻る。

git reset --hard HEAD
現在のコミット以降にワークツリーに加えた変更をすべて取り消す。

git reset --hard HEAD^
1つ前のコミット以降にワークツリーに加えた変更をすべて取り消す。


git blame ファイル名
1行ずつどのコミットで記録したかを表示する。

git revert 34dfaccoe
git blameで調べた取り消したいコミットを取り消す。こういったコミットを取り消す際のためにgit add -pで、コミットを論理的に管理する必要がある。

git checkout ファイル名
引数で指定したファイルをインデックスの状態に戻す。

git checkout HEAD ファイル名
最新のコミットの状態に戻す。

git checkou -b ブランチ名
-bオプションでブランチを作成するので、新規にブランチを作成してそのブランチに移動する。

git branch
ブランチを全て表示する。現在のブランチの横に*が表示される。

git branch -m 元のブランチ名 新しいブランチ名
ブランチ名を変更する。

git remote add リモート名
リモートを追加する。

git remote -v
リモートの詳細を表示する。

git remote rename 元のリモート名 新しいリモート名
リモート名を変更する。

git remote rm リモート名
リモートを削除する。

git push 〜.git master
masterブランチをプッシュ。

git clone A.git B.git
Aリポジトリをコピーする。

git merge ブランチ名
現在のブランチと、指定したブランチをマージする。


git merge ブランチ名
現在のブランチと、指定したブランチをマージする。

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global color.interactive auto
gitのカラーリング

git ls-files -u
コンフリクトしたファイルの確認





タグ:git Rails
posted by digital-squad at 2009年07月08日 20時44分 | Comment(0) | TrackBack(0) | Git
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック