LoginSignup
6
6

More than 5 years have passed since last update.

git configのuser.emailやuser.nameを設定せずにsshのログインユーザ名を使ってcommitする方法

Posted at

概要

社内の共有サーバにsshログインして、gitの共有レポジトリの修正をささっとしたい場面がちょくちょくありまして、
その都度以下のような手順でコミットしておりました。

# まずはnameとemailを設定する
git config --local user.name "hogefugapiyo"
git config --local user.email "hoge@hoge.fuga.piyo"
# コミットする
git commit -m "message"
# 設定を外す
git config --unset user.name
git config --unset user.email

しかしこれが面倒になってきたので
direnvをつかってsshのログインユーザ名からcommitユーザ名とメールアドレスを動的に設定する方法を考えました。

direnvの設定方法

ここを参考に設定しました。
http://qiita.com/tkmiya34/items/875742eb56ebe54d8828

.envrcの作成

git configでcommitユーザを指定せずとも、以下4つの環境変数からもcommitユーザが指定できるようでした。
https://git-scm.com/book/es/v2/Git-Internals-Environment-Variables#Committing

GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL
GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL

who am iコマンドを使うことでログインユーザ名を取得できるので、
取得したユーザ名を加工して上記変数を.envrcで設定してあげることでコミットユーザを動的に変更できます。

whoamiコマンドの場合はsuとかしてしまうとユーザ名が変わってしまうのでwho am iを使うと良いと思います。

最後に

direnv使わずとも.bash_profileや.bashrc等のログインシェルで設定できる環境の方もいると思います。
また、他に良い方法があれば教えてください。

6
6
0

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
  3. You can use dark theme
What you can do with signing up
6
6