目的
Gitの初期設定を行います。
関連記事
設定確認
git バージョン確認
$ git --version
git version 2.13.6 (Apple Git-96)
まず、MacにインストールされているGitのバージョンを確認しておきましょう。
Windowsと違ってMacはGit標準搭載されているので良きです。
万が一、Gitのバージョンが1系であればアップデートしておいた方が良いでしょう。
git 設定確認
* ローカルの設定
$ git config -l
* グローバルの設定
$ git config --global -l
設定ファイルの場所
- Local:
.git/config
各対象のリポジトリの.gitディレクトリ - Global:
~/.gitconfig
基本はLocalとGlobalの設定ファイルの場所だけ覚えておけばokです。
設定ファイルはコマンドから書き換えることを推奨します。
直接書き換えてしまってもokです。
Git初期設定手順(必須)
git ユーザー名、メールアドレスの設定
ユーザ名、メールアドレスは必ず設定しておきます。
公開リポジトリだとWebから見れてしまうので、本名は設定しない方が無難です。
$ git config --global user.name "ゆうきゃん"
$ git config --global user.email "ucan-lab@example.com"
ディレクトリ、ファイル設定
$ mkdir ~/.ssh
$ touch ~/.ssh/config
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*
$ xattr -cr ~/.ssh
必要に応じて実行してください。
パーミッションはディレクトリは700
、ファイルは600
である必要があります。
xattr
コマンドでMacの拡張ファイル属性(extended attributes)、いわゆるアットマークが付いてるのを削除できます。
ssh config
$ vi ~/.ssh/config
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
ServerAliveInterval 15
ServerAliveCountMax 30
AddKeysToAgent yes
UseKeychain yes
IdentitiesOnly yes
-
Host *
全ホストの共通設定 -
OpenSSHの警告メッセージを非表示
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
-
SSH接続のタイムアウト設定
ServerAliveInterval 15
ServerAliveCountMax 30
-
入力したパスワード/鍵の省略設定
AddKeysToAgent yes
UseKeychain yes
- 認証の際に、ssh_config ファイルで指定された秘密鍵のみを使用するよう指定
IdentitiesOnly yes
- configを書くことでsshを便利で簡単にしよう!
メールアドレスのプライバシー設定
プライベートなメールアドレスが表示されるのが嫌な場合は
Keep my email address private
にチェックを入れて、
ID+ユーザー名@users.noreply.github.com
を user.email
に設定しましょう。
global .gitignore 設定(推奨)
~/.config/git/ignore
$ mkdir -p ~/.config/git
ディレクトリがない場合作成する。
.DS_Store
Git初期設定(お好み)
ユーザー名とメールアドレスの設定以外はお好みです。
git push 時に同じ名前のリモートブランチを作成する
$ git config --global push.default current
git status 追跡されていないファイルはすべて表示
$ git config --global status.showUntrackedFiles all
追跡されていないファイルはすべて表示させたい。
改行コードの自動変換機能
$ git config --global core.autocrlf input
input
の場合は改行コードをコミット時に LF
に変換してくれます。
(Mac, Linuxは LF
, Windowsは CRLF
がデフォルトの改行コードです。)
この自動変換を無効にしたい場合は false
を設定してください。
git パーミッションの変更を無視する
$ git config --global core.filemode false
チーム開発時は他の人と合わせましょう。
git ファイル名の大文字・小文字の変更を検知する。
$ git config --global core.ignorecase false
ファイル名の大文字・小文字だけを変更することは希にあるので、この設定は割と重要かも。
git カラー設定
$ git config --global color.ui true
$ git config --global color.diff auto
$ git config --global color.status auto
$ git config --global color.branch auto
git 日本語ファイル名をエスケープせずに表示
$ git config --global core.quotepath false
git 濁点つきのディレクトリ・ファイルが分けて表示されてしまう UTF8-MAC 問題の解決方法
$ git config --global core.precomposeunicode true
- git 1.7.12以降で使用可能
- git 1.8.5以降はデフォルトでtrueとなっている
マージコンフリクトを見やすくする
$ git config --global merge.conflictStyle diff3
設定まとめ
git config --global status.showUntrackedFiles all
git config --global core.autocrlf input
git config --global core.filemode false
git config --global core.ignorecase false
git config --global color.ui true
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global core.quotepath false
git config --global core.precomposeunicode true
git config --global merge.conflictStyle diff3
Git CLIツール
- https://github.com/jesseduffield/lazygit
- https://github.com/github/hub
- https://github.com/jonas/tig
- https://github.com/junegunn/fzf
- https://github.com/tpope/vim-fugitive
詳細は Git使うのに便利なCLIツール の記事に詳しくまとめられています!
次回
GitHub SSH接続設定も合わせて行いましょう!
参考
- https://qiita.com/kozo/items/08dc2b86ae3ba3f282c3
- https://qiita.com/ttskch/items/5276f056517d191e19b5
- https://qiita.com/wnoguchi/items/f7358a227dfe2640cce3
- https://yu8mada.com/2018/08/19/after-changing-git-s-merge-conflictstyle-from-merge-to-diff3-merge-conflicts-became-easier-to-resolve
- https://qiita.com/ryuichi1208/items/45fd2cdd865097a7ad3d
- https://qiita.com/m-yamazaki/items/45ea4a71ebb769995043