1. HappySato

    No comment

    HappySato
Changes in body
Source | HTML | Preview
@@ -1,92 +1,92 @@
# 前置き
こんにちは、ハッピー佐藤です!
みなさんはモブプロやってますか?
最近開発チームでモブプロを始めましたが、色々と問題が起きました。
- 普段使ってる配列と違うキーボードで混乱
- リモートワーク中に遠隔操作すると、ラグがあってまともにコードを触れない
- IDEやVimといった開発環境の違い
モブプロ自体は全員が肯定的でしたが、開発のパフォーマンスに少し影響がありました。
やはりエンジニアは自分の好きな環境で開発したいですよね!
そこでGitHubを通してスムーズにドライバー(タイピングする人)を交代すべく、Commit &Pushを一発で行うべくスクリプトを作ってみました!
(シェルスクリプト初心者なので、実装が汚いのはお許しください!)
# 必要な機能
・1コマンドでプッシュ出来る
・共同編集者を記録する
複数の人が1つのコミットに関わる為、こちらを参考にメッセージに記録出来るようにしています。
自分が会社で使う事を前提としておりますので、全員のメールドメインが同じという仕様ですがお許しください。
# 完成したもの
```mob.sh
#!/bin/bash
#check current branch
NB=`git rev-parse --abbrev-ref HEAD`
if [[ 'master' = ${NB} ]]; then
echo 'Not allowed master commit'
- return
+ exit 1
fi
#get date
date=`date`
#create commit message
CM="git commit -m 'mob commit
${date}
"
ORG_IFS=$IFS
MOD_IFS=","
IFS=${MOD_IFS}
for i in $1
do
IFS=${ORG_IFS}
CM+="
Co-authored-by: ${i} <${i}@happysato.com>"
IFS=${MOD_IFS}
done
IFS=${ORG_IFS}
CM+="'"
#git commit
eval "${CM}"
#git push
`git push origin HEAD`
```
いい感じに改行出来る方法をご存知方は教えてください!
# 使い方
ドライバー終了時に、以下のようにコマンドを打ち込んで下さい。
. mob.sh happy,sato
そうするとコミットメッセージは次のようになります
```
mob commit
Fri Apr 26 20:53:24 JST 2019
Co-authored-by: happy <happy@happysato.com>
Co-authored-by: sato <sato@happysato.com>
```
GitHubではこのように表示され、共同で編集したメンバーが分かります。
<img width="517" alt="スクリーンショット 2019-05-07 0.17.07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253532/db2b9cf8-8dd4-6b75-fe7f-0e9c12e1c065.png">
あとは次のドライバーがpullして、自分の環境で開発を始めてください。
コミットメッセージが荒れて嫌だという方は、プルリクをGitHubでまとめてmergeするSquash and merge等の機能がありますので、ご自身の環境に合わせてお使いください。([参考](https://qiita.com/ko-he-8/items/94e872f2154829c868df))
シェルスクリプトに実行権限を与えるなどは、他の記事をご参考下さい!
# 終わりに
こんな方法でモブプロやリモートワークを便利にしてるよ!という事例がありましたら是非教えてください!