Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

gitで複数のユーザーを使い分ける人用サブコマンド(git author)を作った

More than 1 year has passed since last update.

gitで複数のユーザーを使い分ける人用サブコマンド(git author)を作った

この記事はPonos Advent Calendar 2019 3日目の記事です。
昨日は @e73ryo さんの「MonKey - Productivity Commands」のコマンド操作でUnity開発を効率化するでした。


初めてgitのサブコマンドを作ったので紹介します。
ちなみにRust製です。
リポジトリ
日本語ドキュメント

作った理由

gitを使っているときに複数ユーザーを使っていると git config user.nameとかgit config user.emailとか叩いて現在のユーザー情報を確認することがあると思います。
また、別のユーザーに切り替えるのを忘れてコミット何度か行い、後でログを見て気づくこともあるでしょう(ありました)。

そんな人のために
- コマンド1つでuser.nameuser.emailを取得
- コマンド1つでuser.nameuser.emailを設定
- 過去のコミットのauthorとcommitterを書き換える
ができるgit authorを作りました。

インストール方法

Rustをインストールしておりcargoが使える環境なら
cargo install git-authorでインストールできます。

cargoが使えない環境なら今すぐRustを始めましょう
https://www.rust-lang.org/tools/install

git authorでできること

get

git author getuser.name <user.email>の形式で取得できます。
getは省略可能です。
--local,--globalの指定ができます。
git-author-get.gif

set

git author set hoge hoge@gmail.comの形式で、現在のリポジトリのユーザーをセットできます。
こちらも--local,--globalの指定ができます。
git-author-set.gif

replace

過去のコミットのauthorを書き換えるコマンドです。
git author replace hoge hoge@gmail.com fuga fuga@gmail.comでauthorまたはcommitterが
hoge <hoge@gmail.com>のコミットのauthorとcommitterをすべてfuga <fuga@gmail.com>に書き換えます。
後半のfuga <fuga@gmail.com>は省略可能で、省略した場合はgit author getで取得できるauthor(現在のauthor)に書き換えます。
git-author-replace.gif

注意事項

言うまでもないことですが、複数人で開発しているリポジトリでreplaceを使用するときは他の人の確認をとってください。

push済みコミットを書き換えた場合は書き換えた情報をpushする時にgit push --force--forceオプションを書いてやる必要があります。

おわりに

使っていただけると嬉しいです。
不具合・改善案報告なども待ってます。


明日は@nimitsuさんのGameLift RealTimeServerで遊んでみよう for Unity(AWS設定編)です

block
Game/Game Programming/C++/Rust/C#
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away