.gitconfigはGitで管理しておいて、git config user.name/user.emailは管理したくない

Gitを使う上で、git config user.name/user.emailの設定は必要。そして.gitconfigなどのdotfilesをgithubで管理したいけど、git config user.name/user.emailはそこに記載したくない。
ということで、gitconfigのincludeを使って別ファイルにしました。

Gitで管理する.gitconfigには

[include]
  path = ~/.gitconfig.local

としておいて、dotfileの展開スクリプト内で

GIT_CONFIG_LOCAL=~/.gitconfig.local
if [ ! -e $GIT_CONFIG_LOCAL ]; then
  echo -n "git config user.email?> "
  read GIT_AUTHOR_EMAIL

  echo -n "git config user.name?> "
  read GIT_AUTHOR_NAME

  cat < $GIT_CONFIG_LOCAL
[user]
  name = $GIT_AUTHOR_NAME
  email = $GIT_AUTHOR_EMAIL
EOF
fi

とすることで、展開スクリプト実行中にプロンプトを出して、user.name/user.emailを入力させました。

実際のdotfileの展開スクリプト

参考

gitのhookをスキップ

コミットする際に、コードのチェックや整形を行うスクリプトをpre-commitフックに入れていました。
あるとき複数の変更が入ったコードを内容ごとに分けてコミットするために、 git add -pでコードの一部分をステージ上げ、コミットしようとしたところ、フックスクリプトによって、
一部分ではなく、変更のあった部分がすべてコミットされてしまうことがありました。

フックスクリプトをgit add -pに対応する修正調べてみましたが、やり方がわからなかったので、
コードのチェック済みという前提で、フックをスキップできる方法を調べたところ、

より、–no-verify (-n) オプションで、pre-commitとcommit-msgフックをスキップできるとのこと。

git commit --no-verify

または

git commit -n

gitのtagをリモートに反映する

[git] gitのtagをリモートに反映する | blog mg ☃ frozen
git でリモートのタグやブランチを削除する方法 – Qiita

1.タグの追加をリモートに反映

ローカルでタグ付け

git tag TAGNAME

リモートに反映。リモート名はoriginの場合、

git push origin TAGNAME

2.タグの削除をリモートに反映

ローカルでタグを削除

git tag -d TAGNAME

リモートに反映。リモート名はoriginの場合、

git push origin :TAGNAME

1.7以降であれば

git push --delete origin TAGNAME

3.リモートタグの一覧

git ls-remote --tags origin