#author(“2018-08-10T01:28:39+00:00”,“default:kazuma”,“kazuma”) Git

config系 [#u0a1a41e]

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

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

基本コマンド [#mee5e86a]

リポジトリの作成 [#e01b4594]

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

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

 git add .

状態確認 [#o47ce037]

 git status

コミット(ローカルリポジトリへ) [#i05c7b0e]

 git commit -m "This comment"

リポジトリのログ表示 [#df67cb2a]

 git log

1世代戻る [#e47dd133]

 git checkout HEAD

リポジトリからデータを同期 [#kad1546d]

 git pull

共有リポジトリへ反映 [#b4204335]

 git push

同期系(コピー) [#m3b5f7fa]

リモートの特定のブランチのみclone [#u331360e]

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

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

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

変更系 [#b75b45ad]

ローカルブランチ名を変更 [#ofa15a48]

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

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

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

取り消し系 [#ef947c6f]

コミットしていないファイルの変更取消 [#y82c2db3]

 git checkout ファイル名

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

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

pushしていないcommitを取り消し [#pa1891ea]

 git reset --soft HEAD^

resetの取り消し [#n7ec2205]

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

pushしていないcommitのログを修正 [#n7bae1fb]

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

pushしたcommitを取り消す [#offd6991]

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

リモートブランチを削除する [#u69dcc0c]

 git branch -a
 ブランチ名を確認する
 
 git branch -d ブランチ名(ローカル)
 ローカルのブランチを削除する
 
 git push origin :ブランチ
 リモートのブランチを削除する
 
 ※既にローカルリポジトリが無い場合は、git push origin :ブランチ名 で削除OK

git Untracked files(未追跡ファイル)を削除する [#y14aabc0]

dryrun [#b0eb0fbd]

 $ git clean -n

削除 [#je4fcc79]

 $ git clean -f

コミットログをまとめる [#xa8c65f5]

rebaseを使ってコミットログをまとめる [#g06eb950]

 $ 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 ブランチ名

各コマンドは以下の通り [#lbd7b250]

pick

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

reword

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

edit

 コミットを修正する。

squash

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

fixup

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

exec

 shell でコマンドを実行する

差分確認 [#rd1ad6f4]

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

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

その他 [#qcee0336]

Gitリポジトリからtarball形式でファイルをダウンロード [#fb6d16ff]

gitコマンドが無いサーバーなどでwgetとかでファイルをダウンロードする

 $ wget https://github.com/ユーザー名/リポジトリ名/tarball/ブランチ名