1/10.11 学習記録

<目標>

〜今日と明日の合間の時間を使って〜 - GITの復習 - Pull Requestのプラクティス - Rubuまで行けたら。。。

どこまでいけるかわからないけれどいってみよう!

<メモ>

Rebase - Rebaseは統合する今までのブランチのコミットを一つずつコミットしていく - 手順はコンフリクトを解消>git add .>git rebase --continue or git rebase --skip

Rebaseの途中に取り消す

rm -fr ".git/rebase-apply"

ブランチを消去

git branch -d <branchname>

rebaseを取りやめる

git rebase --abort


Pull Request

「Fork型」と「リポジトリ共有型」

  • 同じリポジトリを共有して、その中だけで行うPull Request
  • リポジトリ共有式Pull Requestを行うには、そのGitHubリポジトリにプッシュする権限を持っていることが条件になりますが、Fork式に比べると操作が簡単でわかりやすく、多くの人にとってはこちらの方が日常的に使いやすいと思います。
  • 本家リポジトリに別ブランチを作って作業を行い、main ブランチに対してPRを送る場合が多いです。

PRを行う際の注意点 .

  • ローカルの自分のエディタ上で確認していたとしても、PRを作ったら必ずFiles changedを確認する癖をつけよう。

  • lintを通しているか

  • ファイルの末尾に改行があるか

  • 同じコミットログが続いていないか

  • コミットログが英語/日本語になってないか

  • コミットログが雑になってないか

  • コミットしたユーザーアイコンがOctcatになっていないか

  • 不要なファイルをコミットしてないか

  • 無意味なファイルがないか

  • gemのgroupが適切か

  • 不要なrespond_toがない

  • 何でもリファクタリングと言ってないか

  • 秘密の情報がコミットされていないか

  • .gitignoreは適切か

  • 大量の依存gemがコミットされていないか

  • マジックナンバーが無いか マジックナンバー (プログラム) - Wikipedia

  • メソッドが長すぎないか 「1メソッドは五行以内に収めるべし」

  • CIをパスする前にレビュー依頼をしない

  • 理解せずコピペしてないか

チーム開発の作業手順 <リンク>

git push する前にgit pull --rebase origin main - (意味) push したい現在のブランチをリモートのメインをベースにrebaseして、自分のpushするブランチがオリジナルのmainブランチとのコンフリクトがないように地ならしをしてからpushする。

$ git push origin {ブランチ名}

  • ここで、注意するのは、そのブランチに対して最初の push では起きませんが、2度目以降の push で、main を rebase した際に最新の main が更新されていた場合、リモートのブランチとローカルのブランチでは、元としている main の状態が異なるため、push をしてもエラーになってします。エラーになった場合は、

$ git push origin {ブランチ名} --force-with-lease

  • と、--force-with-lease を付けた push を行います。これは、強制上書きをする force push とほぼ同じコマンドなのですが、一つ違うのは、push 先のリモートリポジトリに、ローカルリポジトリにはない最新の commit が含まれていた場合にエラーを出してくれます。なので、他の人が自分が作った リモートリポジトリに commit を追加していても、それを消してしまう、という事故が防げます。


RUBY!

rbenvインストール RUBYのプロジェクトを切り替えられる

GEMとは source Gemsが公開しているRubyのパッケージのこと それらのパッケージを管理するパッケージ管理システムの名前

bundlerとは bundlerとはgemを管理するためのツールで、bundler自体もgemの一種です。bundlerを使うことで、複数のgemの依存関係を保ちながらgemの管理ができます。 gemの依存関係について、以下のケースをみてみましょう。

gemAのバージョン2を使うためにgemBのバージョン1が必要なとき、gemAとgemBは依存関係があるといい、単なるgemの組み合わせだけでなく、どのバージョン同士を組み合わせるかどうかが密接に関連します。そのため、誤ってgemBのバージョン2を誤って入れてしまった場合には、gemAが正常に動作しない可能性があります。

このように、gem同士はさまざまな依存関係にあり、管理するgemの数が増えるほど複雑になっていきます。 bundlerはこのようなgem同士の依存関係を管理できるツールです。bundlerを使うことで、依存関係にあるgemを一括インストールすることができます。

バージョンの確認 ruby -v バージョンの切替え rbenv global x.y.z(←切り替え先バージョン)