1/10.11 学習記録
<目標>
〜今日と明日の合間の時間を使って〜 - GITの復習 - Pull Requestのプラクティス - Rubuまで行けたら。。。
どこまでいけるかわからないけれどいってみよう!
<メモ>
Rebase - Rebaseは統合する今までのブランチのコミットを一つずつコミットしていく - 手順は
コンフリクトを解消
>git add .
>git rebase --continue
orgit 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がコミットされていないか
メソッドが長すぎないか 「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(←切り替え先バージョン)