インターンに入って時間が経ち、そろそろgitの使い方にも慣れてきたと思っていましたが、まだいくつか間違えそうなところがあるので自分のためにも記事に残しておきます。
タスクのブランチ操作
こちらでPR作成までの流れをgitで行い、次のタスクを行うときは以下の流れで行うようにします。
-
git checkout master
でmasterやstagingなどのメインブランチに移動 - 常に最新の情報を取得したいため、
git pull origin master
でmasterやstagingなどのリモートリポジトリの変更内容を取り組む -
git checkout -b branch
で作業ブランチ作成&移動
作業後、他のメンバーの開発がマージされてるかもしれないので、push前にgit pull origin master
を行なってコンフリクト解消しても良いかもしれません。
マイグレーションやり直して過去のタスクのマイグレーションが反映しないようにする(Rails)
上記のようなタスクの流れで行い、タスクでテーブルを追加するようなマイグレーション操作を行なった場合、その後別のタスク(別ブランチ)でrails db:migrate:status
を行うと
Status Migration ID Migration Name
--------------------------------------------------
...
up 20220117124649 ********** NO FILE **********
のように********** NO FILE **********
として別ブランチに含まれてます。
同じようにdb/schema.rb
にも前タスクのマイグレーション操作が含まれるので、これによる不具合を防ぐためにもrails db:migrate:reset(rails db:reset)
を行なってマイグレーションをリセットします。
しかし、rails db:migrate:reset
だとデータが全て消えてしまうので、大体の場合はrails db:migrate:rollback
で巻き戻すのが良いと思います。
PR時作成にマージ先を間違えない
最初の頃はマージ先を設定することを知らず、今でもたまに忘れちゃいそうになります。後から対処するのもめんどいので忘れないようにしたいです。マージ先はタイトル上のbaseのセレクトボタンで変更できます。
PR作成後にマージ先を間違えたと気づいた場合、タイトルの横のEditボタンを押すと変更できます。
マージの打ち消し
CIの不具合などでマージ自体を打ち消したいことがないこともないと思いますが、そんな時はGitHub上で簡単に打ち消すことができます。
- PRのコミットの横にRevertボタンがあるのでクリックします。
- 打ち消しPR作成画面が表示されるので、タイトルや説明を好きに編集して作成します。このとき、ブランチ名は先頭に
revert-2-
がついていると思います。また、打ち消しPRの内容を確認すると、追加した内容が打ち消されています。 - 打ち消しPRを作成し、マージすると追加した内容が無かったことになっていると思います。
打ち消し自体をまた無くしたい(元に戻したい)場合は、打ち消しPRのRevertボタン押して同じように進めるだけです!
また気をつけるべきことがあったら追記します。
参考
https://konaga-k.hatenablog.com/entry/2021/09/19/103446
https://saikeblog.com/2020/03/09/github%E3%81%A7pull-request%E3%81%AE%E3%83%9E%E3%83%BC%E3%82%B8%E3%82%92%E6%89%93%E3%81%A1%E6%B6%88%E3%81%99%E6%96%B9%E6%B3%95/#toc2