プルリクに関して
【目次】
Pull Request
同じリポジトリを共有しその中で行うPR
PRされたものを、ローカルで動作確認したければ以下。 (※特に他人のPRを受けた時のようなブランチが存在していない場合)
$ git fetch # 変更を取得 $ git branch -a # ブランチを確認 * master remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/update-readme $ git checkout -b update-readme origin/update-readme # チェックアウト・動作確認
参考:GitHub初心者はForkしない方のPull Requestから入門しよう
github 空のPRの作り方
作業を始めるにあたり、初めにプルリクエストを作る。PRには何かしらのcommitが必要。それに際して 空のcommit を送ることでPRをスタートする方法がある。
# git clone <URL> # git checkout -b <ブランチ名> $ git commit --allow-empty -m "PRのタイトル" # 空のコミット $ git push origin <ブランチ名> # リモートブランチに push # ※まだリモートブランチに紐づいていない $ git branch -u origin/<リモートブランチ名> # リモートブランチと紐付け $ git branch -vv # ローカルブランチがどのリモートブランチと紐づいてるか確認
※上記について追記。
$ git push origin <ブランチ名> # リモートブランチに push # ※まだリモートブランチに紐づいていない $ git branch -u origin/<リモートブランチ名> # リモートブランチと紐付け
↑これを書いていた時、リモートブランチってなんだ?master? 前チーム開発の時やってなかったような?と、まとめながら気になった。 そこで知人に質問し、整理した結果
- リモートブランチと紐づけ=上流ブランチ設定(指定)
$ git push origin <ローカルブランチ名>
=リモート追跡ブランチ作成
ローカルブランチとリモート追跡ブランチを紐づけることでgit pushだけでpushできるようになる。ので、$ git branch -u origin/<リモートブランチ名>
はマストではないということ。
参考:Gitのリモート追跡ブランチ・追跡ブランチ・上流ブランチ
PR前のチェックリスト
以下は読みながらこちらを書き出した。
参考:初心者がRailsプロジェクトへの初PRする前に見るチェックリスト
Files changedを確認
PRを作ったら必ず確認すること。lintが通っているか
rubyだったらrubocop、jsだったらeslintを通すこと。ファイルの末尾に改行が無いか
自動設定にしておくこと。同じコミットログが続いていないか・英語/日本語になってないか・雑でないか
言語は統一した方が良い。プロジェクトのルールに従う。後から見たときにわかりやすいよう意識する。コミットしたユーザーアイコンがOctcatになっていないか
gitクライアントに設定したメアドがGitHubのユーザーのメアドと違う場合に起こる。 他の人から見ると誰だこいつとなるので注意。無意味なファイルがないか
ジェネレータなどが作成した中身のないファイル(module・test・fixturesなど)は消すこと。そのファイルの意味をきちんと調べる。gemのgroupを確認
不要なrespond_to
scaffoldなどでできる不要なrespond_toやformatを消すこと。秘密情報がコミットされていないか
oauthのsecretとか。コード中では環境変数にしておこう。 これをやると、gitで過去を修正したとしてもGitHubのキャッシュに残ってしまい、完全に消すにはGitHubのサポートに連絡するとか面倒なことになる。
.gitignoreは適切か
特定の環境の人向けのファイルは.gitignoreに書かず、自分のマシン固有の設定に書くこと。(.DS_Storeはmacだけのファイルみたいな)大量の依存gemがコミットされていないか
gemのインストール場所をvendro/bundleとかにしてあって、その中にある大量のgemのファイルがコミットされてしまっていないか確認
マジックナンバーが含まれていないか
メソッドが長すぎないか
GitHubへのアクセス
一般的にはsshより、httpsでのアクセスが推奨されているのでそちらを使うこと。
(理由はhttpsの方が負荷分散ができ、GitHub的に都合が良いため)
- GitHubへのアクセス(ログイン)はより安全な2要素認証を使う。(設定済み)
2 要素認証の有効化後は、GitHub にコマンドラインからアクセスする際にPWの代わりに個人アクセストークンor SSH キーを使わなければいけない。