Gitでよく使うコマンドのまとめなんぞを。
Contents
リポジトリ作成&基本設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
git init 中央リポジトリ作成時 git init --bare --shared #登録ユーザー名を何にするか git config --global user.name "test" #登録ユーザーメールアドレスを何にするか git config --global user.email test@example.com #エディタを標準でvimにしたいとき git config --global core.editor vim #色をディフォルトで反映させるとき git config --global color.ui true #CRLFをLFに自動変換 git config --global core.autocrlf input #差分ツールでvimを使う git config --global diff.tool vimdiff git config --global difftool.prompt false git config --global merge.tool vimdiff git config --global mergetool.prompt false ※ちなみに特定のディレクトリのみの設定を変えたい場合は--globalを省略するとそのディレクトリだけになります。 |
リポジトリ取り込み系
1 2 3 4 5 |
//リポジトリ取り込み git clone url //特定ブランチの指定 git clone -b ブランチ名 url |
インデックス登録→コミット→リモート登録→プッシュ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//ワーキングディレクトリ登録 git add 対象ファイル // .で全ファイルのほか、ワイルドカードなども使える //コミット git commit -m "何らかのメッセージ" //リモートの登録 git remote add origin git-url(http or ssh) //git remote -vで確認 //変更 git remote set-url origin git-url(http or ssh) //プッシュ git push origin ローカルブランチ:リモートブランチ |
SSH設定
ちなみにsshを使う場合、鍵名称は ~/.ssh/id_rsa がディフォルトなので名称がこうでない限りは、以下のようになる。
1 |
git -c core.sshCommand="ssh -i ~/.ssh/private-github" clone xxxxxxxxx |
変更戻し系(基本的に中央リポジトリにプッシュした後はしない方が良いかも・・)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//コミットのみ取り消してワーキングディレクトリの状態に戻す git reset --sotf HEAD^ (HEAD^:1つ前の状態に戻すという意味) //インデックスからの戻しで編集内容自体は残る git reset --mixed (ディフォルトはmixedなので省略可) //ワーキングディレクトリ、インデックス、ファイルの変更自体もリセット(要注意) //そっくりそのまま戻したいときに使う git reset --hard HEAD^(またはハッシュ値) //復帰方法はgit pull origin ブランチ名 以下の方法でも戻せる git checkout HEAD^(またはハッシュ値) //復帰方法はgit checkout master //任意のファイルを特定のハッシュ値に戻したい git checkout ハッシュ値 ファイル名 //git revert,rebaseはあまり使わない方が良いかも・・ |
現状確認系
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//記録確認系 git log --オプション オプション -p ソースの変更内容まで確認できる --stat ファイルのリストと変更料 --oneline コミットログとハッシュ値 //現状の確認系(インデックスに入っているものなどを確認できる) git status //addする前の変更点の確認 git diff //addした後の変更点の確認 git diff --cached //commitした後の変更点の確認 git diff HEAD^ //ハッシュ値同士の比較 git diff ハッシュ値1 ハッシュ値2 //ブランチ同士の比較 git diff ブランチA ブランチB |
取り込み+統合系
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//ローカルリポジトリに変更を取り込み(別のブランチも取り込める) //主な使用法としてはローカルにブランチがない時にfetch origin ブランチ名 + checkout -b ブランチ名 追跡ブランチで ローカルにないブランチを作る //git fetch --allだと全てのブランチの変更を取り込む git fetch origin ブランチ名(省略時は全て) //元ソースへの取り込み git merge FETCH_HEAD //fetch + mergeを一気に行う git pull origin ブランチ名 //特定の差分のみ取り込み git cherry-pick -n(このオプションを入れると取り込まず、インデックスに取り込みのみ)ハッシュ値 別ブランチからの取り込み git merge ブランチ名 |
ブランチ関連
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//新ブランチ作成 git branch ブランチ名 //ブランチ確認 git branch -a //ブランチ削除 git branch -D ブランチ名 //ローカルの追跡ブランチ削除 git branch -r -d remotes/ブランチ名 //追跡ブランチからブランチ作成 git checkout -b ブランチ 追跡ブランチ |