gitの基本コマンド

Git

config系

デフォルトのユーザー名とメールアドレスを設定

git config --global user.name hogeuser
git config --global user.email hogeuser@hogehoge.com

基本コマンド

リポジトリの作成

git init 
--bare --sharedでベアリポジトリとして作成

ファイルの追加(ステージングへ)

git add .

状態確認

git status

コミット(ローカルリポジトリへ)

git commit -m "This comment"

リポジトリのログ表示

git log

1世代戻る

git checkout HEAD

リポジトリからデータを同期

git pull

共有リポジトリへ反映

git push

同期系(コピー)

リモートの特定のブランチのみclone

git checkout -b ブランチA origin/ブランチA

特定のブランチの特定のファイルをチェックアウト

git checkout ブランチ名 ファイル名

変更系

ローカルブランチ名を変更

git branch -m 元のブランチ名 新ブランチ名

ローカルもリモートもブランチ名を変更

git branch -m 元のブランチ名 新ブランチ名
git push origin :元のブランチ名
git push origin 新ブランチ名

取り消し系

特定のファイルのコミットやaddの取り消し

git checkout commit-ID ファイル
git reset --hard HEAD^    もしくは HEAD^の代わりにCommit ID

pushしていないcommitを取り消し

git reset --soft HEAD^

resetの取り消し

git reflog
git reset --soft HEAD@{1}

pushしていないcommitのログを修正

git commit --amend -m "コメント"
git log

pushしたcommitを取り消す

git log
コミットIDをメモする
git reset --hard コミットID

git push -f origin ブランチ名:ブランチ名
強制的にコミットを消すので履歴が残らないので注意する

リモートブランチを削除する

git branch -a
ブランチ名を確認する

git branch -d ブランチ名(ローカル)
ローカルのブランチを削除する

git push origin :ブランチ
リモートのブランチを削除する

※既にローカルリポジトリが無い場合は、git push origin :ブランチ名 で削除OK

コミットログをまとめる

rebaseを使ってコミットログをまとめる

$ git log --oneline    <--id確認
e4b4071 9
5fed676 2
b58707a 1st commit
$ git rebaese -i b58707a    <--2と9をまとめる場合1のIDを指定する
pick 5fed676 2
pick e4b4071 9

↓下記のように修正する

pick 5fed676 2
squash e4b4071 9

:wqで保存すると再度エディタがあがってくるので、いい感じのコミットメッセージに修正する 
2と9を一緒にした

[detached HEAD d6b273a] 2と9を一緒にした
Date: Tue Jul 5 19:39:00 2016 +0900
1 file changed, 1 insertion(+), 1 deletion(-)
Successfully rebased and updated refs/heads/master.

$ git log --oneline
d6b273a 2と9を一緒にした
b58707a 1st commit
$ git push -f -u origin ブランチ名

各コマンドは以下の通り

pick

コミットをそのまま使う。内容を変更しない。

reword

コミットメッセージを変更する。コミット内容は変更しない。

edit

コミットを修正する。

squash

ひとつ前のコミットにまとめる。コミットメッセージを書き直す。

fixup

ひとつ前のコミットにまとめる。コミットメッセージをそのまま使う。

exec

shell でコマンドを実行する

差分確認

特定のファイルの特定のコミットとの差分を確認したい

git diff コミットID(git logで確認) -- ファイルパス