cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

Gitコマンドのまとめ

ci git add File1 [File2...] File1[とFile2...]をステージングする
ci git add -p ステージする部分を対話的に決める*1
ci git rm --cached File Fileをステージから取り除く。ワークツリーからだけ削除してしまったファイルをGitの管理から外すときなどに
r git reset [HEAD^ [File...] ] 全てのステージングをやめてHEADとindexをHEAD^の状態に戻す [Fileだけが対象]※HEADを動かすと元のHEADはORIG_HEADになる
r git reset --hard [HEAD^ [File...] ] 全てのステージングをやめてHEAD,index,ワーキングツリーをHEAD^の状態に戻す ※HEADを動かすと元のHEADはORIG_HEADになる
r git reset --soft [HEAD [File...] ] HEADのみをHEADの状態に戻す ※HEADを動かすと元のHEADはORIG_HEADになる
r git revert [-n] commit commitを打ち消すコミットをする。すでにリモートに公開してしまってreset --hard, reset --mixedが出来ないとき用。[打ち消す変更をするがコミットはしない。圧縮revertしたいとき用*2]
ci git commit [-v][-c] [ [-a] [-m 'message'] ] [File/"ORIG_HEAD"] ステージされてるものをコミットする[変更点を表示][注釈を再利用][ [過去にaddされたことのあるものを][注釈を直接付ける] ][Fileを指定して/git resetした後に再度]
ci git commit --amend コミットをやり直す
d git diff [HEAD[ [..]HEAD^] ] workingTreeとindex比較[workingTreeとHEAD比較[HEADとHEAD^比較] ]
d git diff --cached [HEAD] indexとHEAD比較[indexとHEAD比較]
b git branch [NewB [FromB] ] ブランチを一覧する [NewBブランチを作る [FromBブランチから] ][コミットをやり直す]
b git branch -lf B To ブランチBをToの位置に動かす
b git checkout NewB NewBブランチに切り替える
b git checkout -b NewB [FromB/Tag0.1] NewBブランチを作成して切換[FromBブランチ/Tag0.1から]
b git branch -m FromB ToB FromBブランチをToBブランチに名前変更する
b git branch -d OldB OldBを削除する(マージされてないとダメ)
b git branch -D OldB OldBを強制的に削除する
s git stash save [-k] [--patch] ['message'] 現在ワークツリーの状態を保存する(状態は最後にcommitしたところまで戻る)[indexをそのままにする][一部を保存する][注釈を付ける]
s git stash list stashを一覧する
s git stash pop [stash@{1}] 直前のstashを解放しワークツリーに展開する(stashは削除される)[指定したstashを]
s git stash apply [stash@{1}] 直前のstashをワークツリーに展開するが削除しない[指定したstashを]
s git stash drop [stash@{1}] 直前のstashを破棄する[指定したstashを]
s git stash clear stashを空にする
s git stash show [stash@{1}] stashと親コミットの差を見る[指定したstashを]
s git stash branch ToB [stash@{1}] 直前のstashからToBブランチを作る[指定したスタッシュから]
t git tag [ [-a] Tag0.1 [-m 'message'] ] タグを一覧する [直前のブランチにTag0.1タグを付ける[注釈を付ける(-mなしだとエディタが立ち上がる) 注釈は-nで見られる] ]
t git tag -d Tag0.1 Tag0.1タグを削除する
m git merge [--no-ff] FromB FromBブランチを現在ブランチにマージする [現在ブランチの方を主流とする(マージ元のブランチが痕跡として残る)]
m git merge --squash FromB FromBブランチでの変更部分を現在ブランチにステージングする(commitされていない) =圧縮コミット*3
e git rebase FromB 現在ブランチの変更点を全取消してFromBブランチをマージした後、現在ブランチの変更点を全コミットする*4
e git rebase -i A コミットAからHEADまでのコミット履歴を書き換える(並べ替えやsquash(直前commitに統合)など)*5
e git rebase --continue 競合を解決したのでrebaseを再開する
e git rebase --skip 競合するコミットをスキップしてrebaseを再開する
e git rebase --abort rebase前の状態に戻す
o git remote [-v] リモートリポジトリを一覧する[url付きで]
o git remote add origin git@github.com:LeafCage/sample.git 指定したリモートリポジトリにoriginというNNを付ける*6
p git fetch [remote_name] リモートからデータを取得する。*7pullは覚える必要がない。*8
p git push [ [-u] remote_name master[:ToB] ] 追跡中のリポジトリのブランチにpushする[masterブランチをリモートリポジトリの同名ブランチ(master)にpushする*9 [追跡ブランチに登録する(--set-upstream)*10] [origin/ToBブランチに] ]
p git push origin :ToB originリポジトリToBブランチを削除する*11
p git push --delete origin ToB originリポジトリToBブランチを削除する*12
p git push -f 祖先ではないために拒絶されるリモートリポジトリに強制的にpushする ※普通は行ってはいけない