LoginSignup
262

Git 初期設定

Last updated at Posted at 2018-05-20

目的

Gitの初期設定を行います。

関連記事

設定確認

git バージョン確認

$ git --version
git version 2.38.0

まず、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

メールアドレスのプライバシー設定

プライベートなメールアドレスが表示されるのが嫌な場合は
Keep my email address private にチェックを入れて、
ID+ユーザー名@users.noreply.github.comuser.email に設定しましょう。

global .gitignore 設定(推奨)

~/.config/git/ignore

$ mkdir -p ~/.config/git

ディレクトリがない場合作成する。

.DS_Store

[Git] .gitignoreの仕様詳解

Git初期設定(お好み)

ユーザー名とメールアドレスの設定以外はお好みです。

git rebase 対話モード時にも標準モードのようにブランチを更新する

Git v2.38.0 以降のオプションです。

$ git config --global rebase.updateRefs true

git push 時に同じ名前のリモートブランチを作成する

$ git config --global push.default current

デフォルトブランチを main に変更する

※ 2020/10/1 からデフォルトブランチがmasterからmainに変更されました。

The default branch for newly-created repositories is now main

$ git config --global init.defaultBranch main

設定不要かもしれませんが、git init時のデフォルトブランチを指定できます。

git fetch --prune オプションを常に有効化

$ git config --global fetch.prune true

--prune オプションは削除されたリモートの追跡ブランチをローカルリポジトリに反映します。

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 rebase.updateRefs true
git config --global push.default current
git config --global init.defaultBranch main
git config --global fetch.prune true
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ツール

詳細は Git使うのに便利なCLIツール の記事に詳しくまとめられています!

次回

GitHub SSH接続設定も合わせて行いましょう!

参考

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
What you can do with signing up
262