Go
Git
GitHub

GitHubとGitHub Enterpriseを併用してる人のconfigの運用

More than 3 years have passed since last update.


問題

弊社GitHub Enterprise(以下GHE)を導入してるんですが、自分は(もちろん)GitHubと併用しています。

で、大体の人はgit config --globaluser.nameuser.emailをGitHubで使ってるアカウントにしてると思います。

この設定のまま作業してるとたまに困るのが、GHEに置いてるリポジトリなのにuser.nameuser.emailをグローバルのもの使ってしまい、contributeとかにいくらコミットしてても全然自分の名前が乗ってこない問題があります。

これはリポジトリのローカルで以下のようなコマンド打っておくと上記の問題を解決できます。

$ git config --local user.name 'YOUR NAME'

$ git config --local user.email 'your@example.com'

これでめでたく、GHEのcontributeとかにはちゃんと自分の名前が出てきます。

で、まあ毎回これ打っても良いんですが、わりと自分の名前とかメールアドレスを入れるの面倒だったんで、Goの練習がてら設定ファイルから一発でこれらの設定するコマンド作りました。

https://github.com/Layzie/gitconfig-setter


使い方

まずはインストールしてから、好きな場所に、config.tomlってファイル作ってください。

name = "YOUR NAME"

email = "your@example.com"

まあ見れば分かりますが、これがgit config --localで設定される名前とメールアドレスです。ちなみにconfig.tomlという名前は決めうちです。

次に

$ gitconfig-setter <設定したいリポジトリのパス> <config.tomlまでのパス(ファイル名はいらない)>

という風にコマンド打ってあげるとリポジトリのローカルにconfig.tomlで設定した名前とメールアドレスを設定してくれます。


8/10追記

書き忘れてたけど、それぞれリポジトリとconfig.tomlのパスを何も設定しない場合は、どちらもカレントディレクトリを見るようになっています。


最後に

どっちかというと、Goの習作って面が強いです。というか、これやるだけだったらシェルスクリプトで良いんじゃね?疑惑はあります。