リポジトリ設定したい(git config

$ git config -h

.gitconfigにリポジトリ設定を記述できます。 ファイルを直接編集してもよいですが、基本的なアイテムはgit configコマンドが便利です。

基本設定に関してはサルでも分かるGit入門 - Git設定を読むことをオススメします。 書いてあることが分からない場合はヘルプを見て確認するとよいです。

設定を確認したい(--list

$ git config -l

-l / --listオプションで現在の設定を確認できます。

ユーザー設定したい(--global

$ git config --global user.name "Shota Takahashi"
$ git config --global user.email "shotakaha@gmail.com"
$ git config --global pull.rebase false
$ git config --global core.editor hx
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.co switch
$ git config --global alias.st status

--globalオプションでユーザー設定できます。 ユーザー名(user.name)、 メールアドレス(user.email)、 デフォルトのマージ方法(pull.rebase)、 使用するエディター(core.editor)などは、 あらかじめ設定しておきましょう。 設定は$HOME/.gitconfig に保存されます。 このファイルに直接書き込んでもOKです。

エディターを設定したい(core.editor

// Emacsに設定
$ git config --global core.editor emacslient

// VS Codeに設定
$ git config --global core.editor "code --wait"

// Helixに設定
$ git config --global core.editor hx

core.editorでコミットメッセージを編集するエディターを変更できます。 (使っているOSによるかもしれませんが)デフォルトではvimが起動します。

Emacsのヘビーユーザーだったときはemacsclinentを使っていました。 いまはVS Codeを使っているためcode --waitに設定しています。 tigを使う場合はhx(Helix)もいいかなと思います。

注釈

ターミナル内でEmacsを起動するだけならemacs -nwでもできます。 しかし、真のEmacsユーザーであれば、基本的にEmacsは起動したままのはずです。 emacsclientは起動済みのEmacsに接続できるため、起動時の待ち時間を感じることなく コミット作業が可能です。

エイリアスを設定したい(alias

$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.co switch
$ git config --global alias.st status

aliasでGitサブコマンドのエイリアス(=ショートカットキー)を設定できます。 上記のサンプルは、よく使われている基本コマンドのエイリアスです。

[alias]
    co = switch
    ci = commit
    st = status
    br = branch
    graph = log --graph --oneline
    hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
    type = cat-file -t
    dump = cat-file -p
    lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
    lga = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative --all

エイリアスをまとめて設定する場合は、git config を使うより、 $HOME/.gitconfigを直接編集するほうが簡単です。

上記のサンプルは、僕が実際に設定しているエイリアスです。 git graphはコミットログを一覧で確認できて便利です。

ヒント

Git 2.23(2019年8月)に、git checkoutコマンドが、 git switchgit restoreの2つのコマンドに分離されました。 switchのエイリアスがcoとなっているのはcheckoutだったころの名残です。

注釈

後述する Magit (EmacsのGitクライアント)および EdaMagit(MagitのVS Code移植版)を使い始めてから、 コマンド操作することは減りました。

マージ設定したい

// mergeを使用
$ git config --global pull.rebase false

// rebaseを使用
$ git config --global pull.rebase true

// fast-forwardを使用
$ git config --global pull.ff only

pullで、リモートからプルしたときのマージ方法を設定できます。 基本はpull.rebase falseでよいと思います。

注釈

Git2.27.0(2020年6月)以降、 マージ方法が設定されていないと警告が表示されるようになりました。