Wantedlyではビジネスサイドの人にも、Githubの使い方を教え、例えばViewの文言変更などは自分でしてPull Requestを送ってもらうようにしている。
これを実現するための、非エンジニア、初心者エンジニアでも簡単に正しいリクエストを送れるようになる設定一覧。
キーボードの設定 (Macの場合)
- キーのリピート:
速い
- リピート入力認識までの時間:
短い
- (修飾キーで、
Caps Lock -> Control
に)
別にやらなくてもいいが、これが遅いと人生の無駄に感じるw
Github
- Githubでアカウント作成
- 顔写真、名前の登録
- (ssh-keyの登録 チュートリアル(英語))
顔写真は最近直接Upできるようになった。
ssh-keyの作成は自分でやるのはちょっと難しいので登録してあげてる。
これがめんどくさい場合は、以下のコマンドを打って、gitのパスワードをキーチェーンに管理してもらうという方法もある。
git config --global credential.helper osxkeychain
gitの設定
以下のコマンドを打つのは最低限
git config --global user.name "Your Name"
git config --global user.email your-name@example.com
いろいろ開発するなら.gitconfig
を直接編集して以下の設定をしてもらう。
[user]
name = Your Name
email = your-name@example.com
[color]
ui = auto
[alias]
amend = commit --amend -C HEAD
co = checkout
logg = log --stat --decorate=short --pretty=format:'%C(yellow)%h %Cgreen%cr %Cblue%cn%Cred%d %Creset%s %C(cyan)%b'
mergelog = log --merges --pretty=format:'%C(yellow)%h %Cgreen%ci %Cblue%cn%Cred%d %Creset%s %C(cyan)%b'
history = log --graph --date=short --decorate=short --pretty=format:'%C(yellow)%h %Cgreen%cd %Cblue%cn%Cred%d %Creset%s'
unmerged = !git --no-pager diff --name-only --diff-filter=U
sync = !git checkout master && git pull origin master && git fetch -p origin && git branch -d $(git branch --merged | grep -v master | grep -v '*')
[push]
default = current
ハイライトとしては、以下の3つの機能
-
push.default
を直感的にわかりやすいcurrent
にする -
git sync
という現在のmasterを最新のものにした上で過去のブランチは削除する -
git logg
というgit log
をもう少し読みやすくしたコマンドをつける
これで、あんまりGitのことをよくわかってない人でも文言の変更などのPull Requestは以下ようにするんだよと教えるだけでを送れるようになる。
git sync
git checkout -b your_name/branch_name
- <ファイルを変更>
git add .
git commit -m "Commit message"
git push
- Github上でPull Requestを送る
git logg
はよくわかんない感じになりましたと言われた時に、その人のターミナルで打ってもらう。どのファイルを変更したかやリモートとローカルのHEADやmasterの位置が確認できるので、あぁmaster上でcommitしちゃったんだとかすぐに解決してあげやすい。
エディタの設定
vimやemacsでもいいが、大抵、Sublime Textを使ってもらっている。
これのいいところは、デフォルトで以下の機能が付いているところ。
- プロジェクト全体からの単語検索 (Command+Shift+F)
- ファイルの部分文字一致での検索 (Command+P / Command+T)
Sublime Textもお金を払わないとたまにInterruptされるので、最近はGithub製のAtomでもいいかなと思ってきている。
Sublime TextのUser Preferenceの設定
Sublime Textの場合、コード規約の関係で以下の設定は必須。
Sublime Text -> Preferences -> Settings - User
で設定を追加する。
{
"ensure_newline_at_eof_on_save": true,
"show_full_path": true,
"tab_size": 2,
"translate_tabs_to_spaces": true,
"trim_trailing_white_space_on_save": true
}
これはGithubでコードを管理していると、空白がついたり\n
が入っただけでDiffが出るので、次のように統一しているため。
- インデントは2文字でTabは使わない
- 最後は改行で終わる
- 行末に余計な空白は入れない
基本的にこれで問題ないが、末尾に改行が何個も入った場合それをとってくれないのだけ不満点。誰か方法知っていたら教えて欲しい。
show_full_path
についてはコード規約ではないが、例えば、Railsだとindex.html.haml
というファイルはいくらでも存在するので、意外と同じ名前の別ファイルを編集していてうまくいっていないみたいなことも起こる。それに気づけるように出す設定にしてもらっている。