仕事用/個人用gitの使い分けはgithubとgitlabの併用で解決

金曜日, 11月 01, 2019

Blogger

t f B! P L
要点は以下です。


昔からよく言われている「githubはプライベートレポジトリが使えないからgitlabや!」っていうのとは違います。
今はgithubでもプライベートレポジトリ作れるのでこれが動機にはならないです。

個人的にはgithub/gitlabの併用がベストプラクティスなのですが、ひとつだけ注意点があります。

githubとgitlabでユーザー名が違う

githubを使い分けたいってことは、ユーザー名を別のものにしたいということです。
なのでgithub/gitlabを併用するにしても、ユーザー名が同じだとあまり意味がないです。

ただひとつ問題があって、それはgitコマンドのconfigファイルで設定しているグローバルのユーザー名です。

githubのユーザー名をA、gitlabのユーザー名をB、グローバルユーザー名をAとします。
このとき、ローカルマシンでそのままコミットすると、githubレポジトリ、gitlabレポジトリのコミットログは、どっちもユーザー名がAになっていまいます。

これはgitコマンドの仕様で、シェルスクリプトで皆様色々工夫されていますが、基本的にグローバルユーザーを毎度切り替えるだったり、gitレポジトリごとに個別にユーザーを設定する処理をされています。
でもそれすらめんどくさいですよね。

これには最強のソリューションがあります。
ただし、私のようにGitlabをSnippet公開(&レポジトリは個人開発のみでプライベート設定)に使っている人向きです。

それは
放置

よーく考えたら、自分のgitlabのレポジトリは個人開発・プライベートなので、コミットログのユーザー名がAだろうがBだろうがどっちでも良くないですか?

もしgitlabでもレポジトリを公開している場合は、コミットログを見られるとgithubの仕事用ユーザー名(=A)が見えてしまいますが、そもそもそこまで見る人もいないでしょう。

Gitlabのスニペットはウェブ画面からコピペで作るので(ここはここでスマートじゃないんですが)、gitコマンドのユーザー名は関係ありません。

ただし逆はまずいでしょう。
gitコマンドのグローバルユーザー名がBになってる場合です。
仕事のレポジトリのコミットログに、知らないユーザー名Bを混入させることになります。
異物混入なので、グローバルのユーザー名は仕事用gitのユーザー名Aにしておくべきでしょう。

今日のベストプラクティス

ということで、ブログに載せてるソースコードをgistからGitlabスニペットに変えました。
数が少なくてよかった!

QooQ