LoginSignup
3
4

More than 5 years have passed since last update.

Gitリファレンス独書

Last updated at Posted at 2015-03-04

Git 2.3.0 のマニュアルを上から読んでいる。気になったオプションを書いていく。

git-init

--separate-git-dir

.gitとワーキングツリーを分けることができる。直下に.gitを置きたくない共有ドキュメントの管理とかDropboxみたいにツールでsyncしちゃうので.gitを置きたくない場合のような利用例があるようだ。
.git/configのcore.worktreeで設定できる。

--shared

デフォルト=trueだとGroupも書き込める(664とか)ので、それを変更するオプション。falseだとユーザのみ書き込める(umask=022)。all/0xxx(umask)も指定できる。
設定で言うとcore.sharedRepository。

git-clone

--local/-l

ローカルリポジトリでcloneするときに可能ならハードリンクを使用する。ディスクをケチるオプション。
逆に--no-hardlinksを指定すると強制的にコピーする。バックアップ用途などに使うらしい。

--reference <repository>

参照用のローカルリポジトリを設定することでネットワークを渡ってくるデータ量を減らすらしい。可能ならハードリンクを使う。ハードリンクしたくないときは--dissociateを指定する。CI回したり頻繁にリリースする場合に使えそう?
他にもネットワーク利用をケチるオプションは結構多い。--depthでのシャローコピー、--single-branchで指定したブランチだけコピってくるとか。

--origin <name>/-o <name>

remoteの名前にoriginを使いたくない時に指定。master以外をcheckoutしたいときは--branch <name>/-b <name>を使う。

git-add

-i

インタラクティブモードになるけど…使いやすいの…?間違ったコマンドをいれるとHuh?って言われてイラッとする。

-p

コミットをファイルより細かい単位に更に分割できるらしい。しかしインタラクティブつらい。

git-status

--ignored

gitignoreで無視されたファイルを表示。.gitignoreを変更したあとの確認とかに使えそう。

-uno

リポジトリに追加していないファイルを表示しない。デフォルトは-uall。-unormalもあるけどallとの違いがわからない。

-n/--dry-run

実際には実行しない。たまに必要。

git-commit

-a

更新と削除を自動的にaddしてコミットする。今までgit add -uしてgit commit -mしてたけど、このオプションでいいじゃんと思った。

-S[<keyid>] / --gpg-sign[=<keyid>]

GnuPGでコミットに対して署名できる。堅めのオープンソースプロジェクトだと使うみたい。Linux Kernelとか。準備が結構めんどくさい。とりあえずCentOSでgpg --gen-keyするのにrngdが欲しいという時点でしばしハマった。

git-reset

-p

git add -p的にインタラクティブモードでハンク単位にリセットするかどうか指定できる。

git-branch

-v/-vv/--verbose

コミットハッシュ、コミットログ、vvの場合はリモートブランチを出力。

--list <pattern>

ブランチ名をpatternでglobできる。

git-checkout

--orphan [new-branch]

空のブランチ、もしくはヒストリから切り離されたブランチを作れる。使いどころがわからないけど、site-specificなファイルを格納するとか?

git-stash

show

-pでdiffが見れる。HEADとのdiffだと思う。

git-tag

-a/--anotate, -s/--sign

オプションなしだとコミットに名前をつけるだけ。-aでタグオブジェクト生成、-sでGPGサイン付き。(Git bookに書いてあるとおりだけど)

git-shortlog

-s

コミット回数の合計が見れる。

3
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4