Git チートシート

たまにしか使わないやつのメモ

目次

サブモジュールごとCloneする

  • --recursiveをつけるとサブモジュールも一緒にCloneできる
1git clone --recursive [リポジトリ]

サブモジュールの一部だけを利用する

  • sparse checkoutを使って一部しかみないようにする
  • submoduleするときはブランチを指定する方がいい。dll参照のときなんかはmasterでいいと思う
1rem サブモジュール追加
2git submodule add -b [ブランチ名] [参照リポジトリ]
3rem sparse checkoutをサブモジュールで適用する
4git -C [参照フォルダ] config core.sparsecheckout true
5rem 設定を.git内に書き込む
6echo [残したいファイル、ディレクトリ] > .git/modules/[参照フォルダ]/info/sparse-checkout 
7rem ツリー情報を再読み込みする
8git -C [参照フォルダ] read-tree -mu HEAD

サブモジュールの最新に更新する

1git submodule foreach git pull origin master

リモートリポジトリ(フォルダ)を作成する

  • GitHubなど使わず、共有フォルダなどにリモートリポジトリを作成したい場合は、--bare --sharedをつけると作成できる
1git init  [フォルダ名].git --bare --shared

改行コード変換を無効にする(ローカル設定)

  • このリポジトリだけ改行コード変換を無効にしたい場合
1git config --local core.autocrlf false

過去のファイルを取り出す

  • 全部取り出す場合はarchiveを使う
1git archive [コミットIDなど] -o [ファイル名].zip
  • 差分だけ出したい場合はdiffを使う
1git diff --name-only --diff-filter=d [コミットIDなど1] [コミットIDなど2]