- コミット比較、古いブランチの削除、aliasの作成で時間を節約する方法を見ていく
- Git aliases
- 日常的に使うコマンドにalias(別名)を作って、ターミナルでの作業時間を節約
- 例:
git checkout master と入力する代わりに co master と入力
~/.gitconfig ファイルを直接編集してコマンドを編集または追加
- コマンドプロンプトでリポジトリの状態を確認
- リポジトリの状態を見るには
git-prompt.sh を実行
- Linuxを使っていて、パッケージマネージャーと一緒にGitをインストールしたなら、すでに
/etc/bash_completion.d/ ディレクトリに存在する場合がある
- コマンドラインでコミットを比較する
git diff コマンドを使って、同じファイルのバージョン間またはコミット間の差分を比較
- より視覚的なツールでdiff比較をしたいなら
git difftool を使える
- Meld: diffを視覚的に比較するのに便利なビューア/エディタ
- コミットしていない変更をstashする
- 未完了の機能をコミットしたくなく、現在の変更内容をそのまま保管しておきたいときは
git stash コマンドで変更を一時的に退避
- 修正作業を終えて前の変更に戻るには
$ git stash pop を実行
- こまめにpullする
- GitLab Flowを使う場合、機能ブランチで新しい作業を行う
- 機能の実装にかかる時間によっては、masterブランチに複数の変更が入ることがある
- コードの衝突が大きくなるのを避けるには、早めに衝突を回避し、ブランチをmasterへ簡単にmergeできるよう、masterブランチから作業ブランチへ変更を頻繁に取り込むべき
- コマンド自動補完
- 自動補完スクリプトを使えば、bash、tcsh、zshでコマンドを簡単かつ素早く使える
git pull と入力するには git p のように最初の文字だけ入力してtabを押す
- 使えるすべてのコマンドを表示するには、ターミナルで
git と入力してから tab+tab を押せばよい
- グローバル
.gitignore を設定する
.DS_Store や Vim の swp のようなファイルをコミットしたくないなら、グローバル .gitignore ファイルで設定できる
- Gitのautosquash機能をデフォルト設定として使う
- Autosquashを使うと、対話的rebase中にコミットをより簡単にsquashできる
git rebase -i —autosquash のようにrebaseのたびに有効化することもできるが、デフォルトでオンにしておくほうが便利
- fetch/pull時にリモートで削除された内容をローカルブランチから削除する
- リモートリポジトリで消えたブランチがローカルリポジトリにそのまま残っていることがある
- fetch/pullのたびに消すには
$ git config —global fetch.prune true
- Git blameをより効率的に使う
- Git blameは、ファイルのどの行を誰が変更したかを突き止める
- オプション
$ git blame -w # 空白を無視する
$ git blame -M # テキストの移動を無視する
$ git blame -C # 他ファイルへのテキスト移動を無視する
- aliasを追加してmerge requestをローカルにチェックアウトする
- merge requestには、リポジトリのすべての履歴と、MRに関連するブランチへ追加されたコミットが含まれる
- ソースプロジェクトがターゲットプロジェクトのforkである場合、公開されたmerge requestをローカルにチェックアウトできる
- HEADのalias
@ はHEADと同じ。rebase時に使うと作業がずっと楽になる
- ファイルを元に戻す(reset)
- コードを修正していて、すでに加えた変更に問題があると気づいたら、ファイルを元に戻す必要がある
- 修正したすべての項目でundoをクリックする代わりに、そのブランチのHEADへファイルをresetできる
- 例)
$ git reset —hard HEAD
- 1つのファイルだけを元に戻すには、次のコマンドを実行
- 例)
$ git checkout HEAD — path/to/file
- git-openプラグイン
- 使っているリポジトリをホスティングしているWebサイトへ素早くアクセスしたいなら
git-open を使える
- git-extrasプラグイン
- より多くのコマンドを使ってGitの使い勝手を高めたいなら
git-extras プラグインを使う
git info(リポジトリ情報の表示)、git effort(ファイルごとのコミット数)が提供される
まだコメントはありません。