11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

gitフックを使って職場のレポジトリに趣味のアカウントでcommitするのを防ぐ

Posted at

職場や研究室と普段githubなど趣味で使ってるアカウントで分けたいときがあります。
例えば、職場で鳳凰院凶真と名乗っていて、趣味ではokarinというユーザ名で活動している場合などです。
鳳凰院凶真としてコミットしたはずがokarinとしてコミットしていて焦るなんてことありますよね。
そんな時はgit hookを使って未然に防ぐことができます。

gitフック

gitフックによってコミットやプッシュなど特定のアクションの前にスクリプト実行することができます。

Git - Git フック

今回はコミットする前に特定のディレクトリにいれば、職場のアカウントでコミットするようにフックを設定してみます。

方法

~/.git-template/hooks/に以下のpre-commitスクリプトを配置して実行権限を与えます。

nameは変更後のユーザ名、work_dirは職場用の作業ディレクトリをセットします。

pre-commit
#!/bin/bash

dir=$(cd $(dirname $0) && pwd)
name='鳳凰院凶真'
work_dir='ラボ'

# 社のディレクトリかつ社のユーザネームではない場合
if `echo ${dir} | grep -q ${work_dir}` && ! `git config user.name | grep -q -w ${name}`; then
  `git config user.name ${name}`
  echo 'changed user.name '${name}
  echo 'retry git commit'
  exit 1
fi

実行権限を与えるのを忘れずに。

$ chmod +x pre-commit

.gitconfigにテンプレートを読むことを設定します。

$ git config --global init.templatedir '~/.git_template'

まとめ

上記の設定で、安心して職場でもコミットできるようになりました。
フックの機能を使えば他にも色々出来そうです。
また、shellscript初めて書いたのでおかしなところがあったらご指摘お願いします。

参考

11
12
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
11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?