Git操作まとめ 〜Gitをターミナルで使う場合の設定(git config)

この記事では、Ubuntu18.04LTSにインストールしたGit(version 2.17.1)を使用しています。

ステージングとコミット、履歴の閲覧ができたところで、Gitを操作するのに便利な設定をしてみます。
そのままでも操作自体は可能ですが、使う方に応じた設定を行うことでより効率的に作業をすすめることができます。
[Gitのインストールとセットアップ](https://qiita.com/tsweblabo/items/1d508489a904fc3f081e)の記事の初期設定で少し触れてはいますが、追加した設定は、HOMEディレクトリの隠しファイル'.gitconfig'等に保存されていきます。

## 設定対象の指定オプション

設定をする上で、設定する対象を認識する必要が出てきます。私はまだ、細かくは使い分けていませんが、知識として持っていて損はないでしょう。

||オプション|設定の保存場所|
|:---:|:---|:---|
|マシン全体|--system|/usr/local/etc/gitconfig|
|ユーザー単位|--global|~/.gitconfig|
|リポジトリ単位|(表記なし)<br>--local|(リポジトリのルート)/.git/config|

---
## 名前、メールアドレスの登録と確認

```shell:名前の登録
git config --global user.name "あなたの名前"
```
```shell:メールアドレスの登録
git config --global user.email "あなたのメールアドレス"
```

```shell:確認用コマンド
git config -l
```
```shell:実行結果
user.name=xxxxxx(あなたの名前)
user.email=xxxxxxxx@gmail.com(あなたのアドレス)
```

この表示が確認できれば、お使いのPCでGitを操作した時にその名前とアドレスが登録されるようになります。

## Gitメッセージの色分け

ターミナルでGitの作業をしているとき、文字色が単一だと見づらいことがあります。
なので、メッセージの色分けもしておくと作業がはかどります。
設定は以下のコマンドで行なえます。

```shell
git config --global color.ui true
```

---

## エディタをVimに設定する

ターミナルでgit commitをした際、コミットメッセージを編集するのにデフォルトでnanoが起動します。
私はnanoよりもVimのほうが使いやすいと思うので、Vimが起動するように設定します。

```shell
git config --global core.editor 'vim -c "set func=utf-8"'
```

```shell:確認用コマンド
git config -l
```

```shell:実行結果
user.name=xxxxxx(あなたの名前)
user.email=xxxxxxxx@gmail.com(あなたのアドレス)
color.ui=true
core.editor=vim -c "set func=utf-8"
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
```

項目がいろいろ増えていますが、4行目の[vim -c "set func=utf-8"]で確認できました。

---

## Gitコマンドのショートカット

Gitのコマンドは、開発を行いつつ何度も同じことを繰り返していくことになります。
そのたびにGitコマンドを全て入力していくのは手間がかかります。
自分の使いやすいように短縮することで、効率を上げることができます。

慣れと好みではありますが、ショートカットを設定しすぎると逆に訳がわからなくなる可能性があるので、Gitを使いながら少しずつ設定していくのが良さそうです。

当面頻度が多そうなコマンドのショートカットを設定しておこうと思います。

尚、下記の--globalオプションは、このショートカットをこのリポジトリだけでなく、他のリポジトリでも同じように使えるようにしたいのでつけてます。

```shell
git config --global alias.st "status"
git config --global alias.cm "commit"
git config --global alias.br "branch"
git config --global alias.co "checkout"
git config --global alias.df "diff"
```

```shell
git config -l
```

```shell:実行結果
user.name=xxxxxx(あなたの名前)
user.email=xxxxxxxx@gmail.com(あなたのアドレス)
color.ui=true
core.editor=vim -c "set func=utf-8"
alias.st=status
alias.cm=commit
alias.br=branch
alias.co=checkout
alias.df=diff
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
```

---

## 初期設定をシェルスクリプトで楽にする

本記事の手順でgit configの編集をするに当たって、シェルスクリプトを使うことで時間短縮や統一化が図れそうなので、私が実際に試したシェルスクリプトを載せておきます。
これはあくまで私個人が使いやすいと思ったものなので、適宜追加修正して使っていただければいいかと思います。

```shell:git_config.sh
#!/bin/bash                                                                 
  
#gitを使う上で必要な初期設定のscript

#user nameの登録 
git config --global user.name "あなたの名前"

#user emailの登録
git config --global user.email "あなたのメールアドレス"

#commitメッセージを編集するときに使うエディタの設定（デフォルトではnano）
git config --global core.editor 'vim -c "set fenc=utf-8"'

#gitメッセージの色分け
git config --global color.ui true

#gitの操作をする際のコマンドのショートカット
git config --global alias.st "status"
git config --global alias.cm "commit"
git config --global alias.br "branch"
git config --global alias.co "checkout"
git config --global alias.df "diff"
```

```shell:git_config.shに実行権限を付与
chmod +x git_config.sh
```

```shell:git_config.shを実行
sh git_config.sh
```

---

### 本記事目次ページ
[Git操作まとめ](https://qiita.com/tsweblabo/items/6aec9d022c08954f5024)

### 参考サイト
- [Qiita:Gitをインストールしたら真っ先にやっておくべき初期設定](https://qiita.com/wnoguchi/items/f7358a227dfe2640cce3)

- [Qiita:git configについて](https://qiita.com/RyochanUedasan/items/5bf5223c0d9fef1adae5)