gitでコンフリクト
経緯
どうせ削除するだけだから、masterをマージしないでいいやと、以下のように作業を行いました。
- 最新ではないmasterからブランチを作成
- ブランチ内でファイルを削除
- コミット
- pull request
すると、なんということでしょう。削除したファイルがコンフリクトを起こしているではありませんか。 ちゃんとしてって言われてしまった。
対応方法
以下の手順で、対応を実施。
- ローカルのmasterを最新へ
- ブランチ側でrebase
- 削除したファイルはgitからも削除し、git add
- リモートブランチを再push
$ git checkout master $ git pull $ git checkout feature/new $ git rebase $ git rm deletedfile1 deleted files2 $ git add . $ git push origin :feature/new $ git push origin feature/new
原因
HEAD情報が異なるから起きているらしい。 業務的?には、このファイルなくなってるけど、本当にいいの?って確認のようだ。
db:seedでデータを取り込むときの話
目的
railsでDBへ初期データを登録する際、db:seed を使うのが良いらしい。 ただ、db/seeds.rb はRubyコードなので運用を考えると、CSVなりなんなりにしておくのが良いのだろうなと思うわけです。 つまり、人事からもらう部署データを読み込んで、、、なんてときにExcelでデリバリをしてすぐCSVに変換すればよいわけですから。
実施方法
以下のようなコードを書く。
require "csv" # Department CSV.foreach('db/csv/department.csv') do |row| Department.create(:id => row[0], :name => row[1]) end