【Linux】【Git】Git のインストール〜初期設定【SW】

Git のインストール〜初期設定
 

 

Git のインストール

% sudo apt-get install -y git

 

Git の設定ファイル($HOME/.gitconfig)の作成と設定

(詳細は後述するが) 本ページでは次の項目の設定を行う。

  1. git config を実行して $HOME/.gitconfig を作成する。
  2. $HOME/.gitconfig に「email」と「name」をダミーで構わないので登録する *1
  3. カラー設定をする
  4. Git ログ編集時のエディタ設定(vim)をする
  5. Git ログのテンプレートを作成する

 

Git の設定

 

$HOME/.gitconfig の作成・設定をする

下記コマンド実行により、次の設定を行っている。

  • $HOME/.gitconfig に「email」と「name」の登録
  • カラー設定
  • Git ログ編集時のエディタ設定(vim)
  • Git ログのテンプレートを作成
    • テンプレートは、下記の /home/neko/.gitmesg.tmpl である
% sudo git config --global user.email "neko@example.com"
% sudo git config --global user.name "Neko"
% sudo git config --global color.ui "auto"
% sudo git config --global core.editor 'vim -c "set fenc=utf-8"'

 
出来上がりの $HOME/.gitconfig は以下である。

[user]
	email = neko@example.com
	name = Neko
[color]
	ui = auto
[core]
	editor = vim -c \"set fenc=utf-8\"
[commit]
	template = /home/neko/.gitmesg.tmpl

 

Gitログのテンプレートを作成する

 

1. コミット時に呼び出されるテンプレートファイルを以下の通り作成する
% touch $HOME/.gitmesg.tmpl

$HOME/.gitmesg.tmpl

Modify: 

# - Fix: バグ修正
# - Add: 新規の(ファイル)機能追加
# - Modify: バグではない機能の修正
# - Clean: リファクタリング等による整理
# - Remove: 削除

 

2. コミット時に呼び出される(フックされる)ように関連付けする

'おまじない' をする

% sudo git config --global commit.template ~/.gitmesg.tmpl

 
上記 'おまじない'実施後の $HOME/.gitconfig の内容は以下である

$HOME/.gitconfig

[user]
	email = neko@example.com
	name = Neko
[color]
	ui = auto
[core]
	editor = vim -c \"set fenc=utf-8\"
[commit]
	template = $HOME/.gitmesg.tmpl

 

ssh アクセスに関する設定をする

 
Git リモートリポジトリにアクセスした時にパスワードの認証を省略するように以下 1、 2 を行う。
 
1. 公開鍵($HOME/.ssh/id_rsa.pub)をパスフレーズ無しで作成する
以下を実行することで $HOME/.ssh/id_rsa.pub として公開鍵が作られる。 余談として、秘密鍵は $HOME/.ssh/id_rsa である。

% ssh-keygen -t rsa

 
2. 公開鍵の内容をリモートリポジトリがあるサーバの $HOME/.ssh/authorized_keys に追記する

% scp  $HOME/.ssh/id_rsa.pub  アカウント@[リモートサーバ]:/tmp/ &
% ssh アカウント@[リモートサーバ]  "touch $HOME/.ssh/authorized_keys; cat /tmp/id_rsa.pub >> $HOME/.ssh/authorized_keys"

 

注意点
  • サーバ側の下記フォルダおよびファイルのアクセス権を次のようにする。
    • 要は他者に以下のことを実行されないようにする
      • $HOME/.ssh の編集・削除をさせない (=改ざん防止)
      • $HOME/.ssh/authorized_keys を読み出させない (=成りすまし防止)
% chmod 755 $HOME
% chmod 700 $HOME/.ssh
% chmod 600 $HOME/.ssh/authorized_keys

 

  • クライアント側の下記フォルダおよびファイルのアクセス権を次のようにする。
    • 要は他者に以下のことを実行されないようにする
      • $HOME/.ssh の編集・削除をさせない (=改ざん防止)
      • $HOME/.ssh/id_rsa.pub を読み出させない (=成りすまし防止)
% chmod 755 $HOME
% chmod 700 $HOME/.ssh
% chmod 600 $HOME/.ssh/id_rsa.pub

*1:email, name を登録しておかないと、commit の際にエラーになる環境が多いはず