このreferenceはGitのコマンドの網羅的な説明にはなっていません
よく使う(と思われる)機能をさらっと調べるためのreferenceですので、
より詳細な機能を調べる際にはGit User Manual (ver 1.5.3 以降用)Git Manual等をご参照下さい
|
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
●設定と初期化(config/init) $ git config --global user.name ユーザー名 user.email メルアド Globalなユーザ名とメルアドを設定 //------ $ cd /path/to/repo config user.name ユーザー名 config user.email メルアド 特定の倉庫用のユーザ名とメルアドを設定する Globalとの違いは--globalオプションの有無 //------ config --global color.ui "auto" Gitの出力の色分けを有効に core.quotepath false 日本語file名がQuoteされないように設定 Gitコマンドのaliasを作る config --global alias.co 'checkout' alias.st 'status' alias.ci 'commit -a' alias.di 'diff' alias.br 'branch' git co でCheckOut, git br で枝等が出来るようになります config -l 現在の設定値の表示 新しい倉庫の初期化 $ mkdir /path/to/repo $ cd /path/to/repo init (倉庫を作ったよという文言) add . commit -m 文言 (commitができたよという文言) 倉庫のcloneを作る clone 倉庫のURL (cloneできたよという文言) 既存のDirectoryをGit倉庫化 $ cd /path/to/existing/directory init (倉庫を作ったよという文言) add . commit -m 文言 (commitができたよという文言) remote add 遠隔倉庫名 倉庫URL 新遠隔倉庫を追加する 倉庫のDirectory内で実行 ●日常の作業(add/commit/checkout/reset) add file または commit -m 文言 新fileの追加や既存fileのStageをしてcommitする | は複数指定可 add -p file fileの一部をStageする (commitするハンクを選択) -i 対話的にfileを追加 -u パス 追跡しているfileへの修正を全てStage 「追跡しているFile」とは、過去にgit addコマンド等によりGitが追跡対象と認識しているFileを指す。 Fileの修正だけでなく削除も適切に処理される commit -m 文言 -a 追跡しているfileへの修正を全てcommit checkout HEAD file 作業Treeにおける変更を元に戻す git checkoutにおいてHEADの指定は省略できる。 masterのように枝等と同じ名前のFileを作ってしまった場合は、 git checkout -- master のようにすればよい。 git checkout . とすると作業Treeの全ての変更が元に戻る reset HEAD file commitしていないStageをresetする。 git reset も git commit と同様にHEADの指定は省略できる。 単にgit resetすると全てのStageがResetされる commit -m 文言 --amend 直近のcommitを修正する 必要な変更を施したら、それをStageする -C HEAD --amend 前回のcommitを修正する(commitMessageは再利用する) ●枝(branch/merge/checkout/cherry-pick) branch local枝を表示 -r 遠隔枝だけを表示 -a localと遠隔枝を全て表示 新枝名 現枝から新枝を作る checkout 枝名 別枝をCheckOut -b 枝名 現枝から新枝を作り、ついでにCheckOutまで branch 新枝名 起点 別の時点を起点にした枝を作る 倉庫の履歴のどの時点からでも、そこを起点にした枝を作れる 起点にするのは、別枝名でもcommit名でも札名でもいい -m 既存枝名 新枝名 枝の移動または名前の変更 新枝名が存在しない場合のみ成功 merge 枝名 別枝を現枝にMerge --no-commit 枝名 Mergeだけしてcommitしない(寸止め) cherry-pick -n commit名 commitのCherryPick(つまみ食い) --no-commit CherryPickだけしてcommitしない(つまみ食いの寸止め) branch --merged Merge済の枝一覧を表示 --no-merged 未Mergeの枝一覧を表示 merge --squash 枝名 1つの枝の履歴を圧縮して別の履歴に branch -d 削除する枝名 枝を削除する 枝が現枝にMergeされている場合のみ成功 -D 削除する枝名 枝を何が何でも削除する 枝が現枝にMergeされていなくても成功 ●Tag(札) tag 札を表示 Tag名 札を付ける 現在の枝のHEADに札が付けられる Tag名 commit名 別の時点のcommitに札を付ける -d Tag名 札を削除 ●履歴(log/diff/blame) log 履歴を全て表示 -p 変更を示すPatchと一緒にLogを表示 -1 表示するLogを1つに限定する -20 -p 表示するLogを20に限定し、Patchも表示 --since="6 hours" 過去6時間のcommitを表示 --before="2 days" 日以上前のcommitを表示 -1 HEAD~3 または -1 HEAD^^^ または -1 HEAD~1^^ HEADから2つ前のcommitのLogだけを表示 起点...終点 2つの時点間のcommitを表示する 起点および終点はcommit名、枝名、札名のいずれかの名前。異なるものを組み合わせてもよい --pretty=oneline Logの履歴を1行ずつで表示 --stat LogのEntryごとに影響を受けた行の統計情報を表示 --name-status commitにより影響を受けたfileの状態を表示 diff 現在の作業TreeのStagingAreaとの差分を表示 --cached StagingArea と 倉庫との差分を表示 HEAD 作業Tree と 倉庫との差分を表示 起点 作業Tree と以前の倉庫との差分を表示。 起点はcommit名、枝名、札名のいずれかの名前 起点 終点 倉庫の2つの時点間での差分を表示 --stat 起点 [終点] 差分の統計情報を表示する 終点は省略可 blame file 指定したfileについて、commitの情報を注釈付きで表示 -M file file内でのコピペおよび行の移動を含めて、commitの情報を注釈付きで表示 -C -C file 行の移動とオリジナルのfileを表示して、 commitの情報を注釈付きで表示 Cを2回付ける log -C -C -p -1 時点 Logの中でコピペについて表示する Cを2回付ける ●遠隔倉庫(clone/remote/branch/fetch/push/pull) clone 倉庫URL 倉庫のcloneを作る clone --depth 200 倉庫URL 倉庫のcloneを作るが、直近の200commitだけをDownLoad remote add 新遠隔倉庫名 倉庫URL 新しい遠隔倉庫を追加 branch -r 遠隔枝を全て表示 branch 新枝名 遠隔枝名 遠隔枝からlocal枝を作る branch 新枝名 遠隔札名 遠隔札からlocal枝を作る fetch origin倉庫から変更を取得するが、 local枝にはMergeしない(寸止め) fetch 遠隔倉庫名 origin以外の遠隔倉庫から変更を取得するが、 local枝にはMergeしない(寸止め) pull 遠隔倉庫名 遠隔倉庫から変更を取得し、現在の枝にMerge pull origin倉庫から変更を取得し、現在の枝にMerge push local枝を同じ名前の遠隔枝にPush 引数を省略すると origin という名前の遠隔倉庫に現枝をPushする origin に同名枝がない場合は、引数を省略せずに明示的に倉庫と枝を作成する必要がある push 遠隔倉庫名 local枝名:遠隔枝名 local枝を遠隔枝にPushする 遠隔枝が存在しない場合、遠隔倉庫に新しくその遠隔枝名で枝を作成する git pushにより作成・削除される遠隔枝は、遠隔倉庫のLocal枝と同じもの。 倉庫上でgit branch等により直接操作できる push 遠隔倉庫名 :遠隔枝名 遠隔枝を削除する 遠隔枝名の前の:(コロン)の前には空白が必要 remote prune 遠隔倉庫名 古くなった遠隔枝を取り除く remote rm 遠隔倉庫名 遠隔倉庫と、それに関係する枝を全て取り除く ●subModule ※以下コマンドはWorkingTreeのTopLevel(.gitのあるDirectory)で実行する必要があります submodule SMを確認 -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx path/to/submodule のように 先頭が-で始まる場合、まだ初期化されていません。初期化すると-が消えます add 倉庫URL clone先のパス SMを作成 SMを作成すると.gitmodulesという平文の設定fileが作成され、 指定した倉庫がcloneされてきます しかし、TopLevelの方ではStageされた状態で止まっているため、 作成後にcommitが必要。 $ git commit -m 'add submodule' init SMのパス SMを初期化 SM定義を含む倉庫をcloneしてきた場合等は必要。 順序としてはgit submodule init/git submodule update update SMのパス SMを更新 SM定義を含む倉庫をcloneしてきた場合等は必要。 順序としてはgit submodule init/git submodule update ●GitとSubVersionの橋渡し svn clone SV倉庫 SV倉庫全体のcloneを作る -s SV倉庫 標準のLayoutを持つSV倉庫全体のcloneを作る trunk、branches、tags による標準の構造を持つSV倉庫のclone作成に使う -T trunkのパス -b branchesのパス -t tagsのパス SV倉庫 標準のLayoutではないSV倉庫全体のcloneを作る -s -r 1234 標準のLayoutを持つSV倉庫のRevision1234のcloneを作る -s --prefix svn/ SVの倉庫 標準のLayoutを持つSV倉庫からcloneを作り、遠隔枝に全てPrefixを付ける svn rebase 上流のSV倉庫から更新を取得してRebase svn dcommit 上流のSV倉庫に変更をPushして戻す svn dcommit -n 上流にPushされるcommitの一覧を表示 svn log 倉庫のSVLogを表示 svn blame file fileのsvn blameを表示 |
