contentMobileAndroidITWebCGMicrosoftwindowsoutlookexcelExcel(外部)プログラミングJavaScript:テキストサービスJavaWordPressxyzzy使い方カスタマイズlisp秀丸ハイライトマクロmozillafirefoxthunderbird【Git】ユースケース別よく使うコマンドユースケース別よく使うコマンドはじめに前回は、概念を中心に説明しましたが、こちらではユースケース別にコマンドを説明します。【Git】ざっくり理解編ユースケースごとなので、branch/reset/logなどは複数回出現しています。軸となる、checkout/add/commit/mergeあたりから読むと理解しやすいかと思います。ブランチ)を立ち上げる。リモートから立ち上げる時に使う。ローカルレポジトリにリモートとのリンク情報と共に確保する。pullの場合、mergeまで行う。branchで分岐した地点(base)を変更する。mergeの複数版に近い。処理としては、baseで指定したところに指定したブランチの内容を逐次マージしていく(差分、つまり共通の祖先から)。mergeのFFのようにcommitが発生しない。squash/fixupオプションで昼休みや打合せまえにcommitした、中途半端な内容を1commitにまとめることができる。reset+commitも限定的だがある意味まとめることができる。rebaseすると分岐情報は消えるので、local(自分の範囲)に閉じた内容に使わないと、他人のマージ関連作業に影響が出る。不要になったコミットやファイルを圧縮するにはメンテナンスとして、gcコマンドがある。branchを作ったり、branchに関する操作を行う。branchに関するというのは、branchが対象であり、広く”branchに関係するもの"という意味ではない。directoryを整備して始めるのであれば、checkoutを使う。参照情報である、ブランチ情報HEADの位置を別のcommitに再セットする。commitやworkingをいじらないが、index,workingもオプションでリセット可能。commit情報の確認。branchの流れのログを見る場合、便利なreflogがある。特定のコミットから開発を開始する。ブランチを指定すると、ブランチの最新を使う。/HEADがその指定したcommitに書き換わる。上記と違い、remoteから持ってきてlocalレポジトリに保存する。そのあとマージ作業を行い、以後checkoutと同様の動きをする。directoryを保存しておく。checkout(環境切り替え)。影響範囲に注意(前述)。directory上書きでロストの可能性があるので、確認したいだけの場合、stashで退避するか、diffやlogで確認する。cleanコマンドを使う。HEAD/index先の内容は、レポジトリにあるので心配ないが、逆に(commitしていた)変更情報はブランチの流れに乗らないので、直接は残らない。checkoutのように書き変える。ある状態にindexをsetし(WTは変更しない)ことから、結果としてindexを戻すことによく使われる。その後commitすると巻き戻った範囲はbranchとして浮いた状態になる。rebaseと同じく、大きく戻す場合、remoteレポジトリの範囲はやらないほうがいい。ステージングにあげた内容を、commitする。HEADの内容が変わり、indexはaddの時に同期済み。基本、addしたファイルだけが対象。コミット対象であるファイルをステージングから取り消したいときはresetを使う。現在のブランチHEADにマージするものを指定(commit同士)。directoryではない。基本commitされる。競合が発生すると止まり、確認される。commit済み同士なので、修正して継続も、停止も可能。実際としてマージ処理が不要の場合(現在のブランチの最新から分岐した別ブランチをマージするとき)、FastForward(参照だけ変わる)になるが、branchの分岐タイミングを意味したいのであれば、新たにcommitを強制的にすることも可能。指定した1commit分(つまり直前まで)の差分のみ取り込む。cherry-pickの取消版。任意のcommitを除く。新たにcommitまで行う。rebaseと同じく、大きく戻す場合、remoteレポジトリの範囲はやらないほうがいい。gitの操作の情報、つまりcommit情報が見える。そのためオプションが豊富。shortlogコマンドは短く出力する。branchの流れのログを見る場合、やっちまったなぁというとき使う。コミットオブジェクト情報を見る。describeコマンドもある。tree/ワーキングディレクトリ、作業環境。localで開発するディレクトリトップから全階層を表す。サンドボックスなので、自由にいじり倒せる場所。ソースを保管する場所ではない。