1
1

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 1 year has passed since last update.

gitのマルチアカウント運用の設定まとめ

Posted at

はじめに

gitのアカウントを複数使って切り替えながら作業している場合に
本来pushしたくなかったアカウントでpushしてしまって事故ってしまうことがある。 ない。
そんな時のために、、、

マルチアカウント運用時の

  • 事故の事前防止
  • アカウント切り替えの設定
  • 事故ってしまった時の対処
    を備忘録的に残しておきます。

ターミナルでのgitブランチ&ユーザ名表示

  • ターミナルにブランチ名とユーザ情報を表示します。
    001.png

ターミナルにブランチ名を表示する設定はよく記事で見かけますが、プラスしてユーザ情報もターミナル上に表示させることで、
今どのアカウントでgitを使っているのかがすぐわかるようになり事故を未然に防げる可能性が上がります。

手順

~/.bashrcの中にコマンドを追加します。

# ユーザ情報を取得する関数
parse_git_user(){
    # ターミナルにユーザ名じゃなくてアドレスを表示したい場合はこっち
    # git config --get user.email
    git config --get user.name
}

# git系の設定
source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true

# コマンドプロンプトの表示変更
export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\] ($(parse_git_user))\n\$ '

ちなみに\[\033[32m\]\はbashのカラーコードの指定。
\[\033[00m\]で元の色に戻している。

source ~/.bashrcを忘れずに。

gitユーザの切り替えコマンド設定

アカウントが2つあるとして、
gsu1gsu2のコマンドでアカウントを切り替えられるようにします。

手順

~/.bash_profileの中にコマンドを追加します。

function gsu1func() {
    git config --global user.name "[ユーザ名1]"
    git config --global user.email "[メールアドレス1]"
    git config --global user.password "[認証トークン1]"
}
function gsu2func() {
    git config --global user.name "[ユーザ名2]"
    git config --global user.email "[メールアドレス2]"
    git config --global user.password "[認証トークン2]"
}
alias gsu1=gsu1func
alias gsu2=gsu2func

source ~/.bashrcを忘れずに。

commitしたユーザ情報を書き換える

直前のコミットでやらかした時を想定します。

手順

  1. 書き換えたいユーザに変更しておく
    • gsu1
  2. commitのrebase
    • git rebase -i HEAD~1
  3. エディターが開くのでpickからeditに変更
    • こんな画面が出てくる
      002.png

    • pickからedit

      - 1 pick d123becdf [add] commit コメント
      + 1 edit d123becdf [add] commit コメント
      
    • エディタを閉じる

      • :wq
  4. ユーザ情報をgitに設定中のユーザに書き換える
    • git commit --amend --reset-auther
  5. rebaseの修正を修了する
    • git rebase --continue
  6. リモートリポジトリに反映する
    • git push -f origin [branch名]

まとめ

ターミナルの色がカラフルになると作業モチベが上がるのでおすすめです。
※個人の意見です。諸説あります。

参考

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?