Rails
Git
Heroku

[学習用]実装して失敗したとき。戻したいときに覚えておきたいGit

実装の実験の為、commitしないでVagrantサーバーでテストしたが、
エラーが戻らなくなったので、実装前に戻したくなった。

しかし残念なことに戻らなかった。

自分でやった、出来たけど間違っている方法

※まだbranchは学習してない
pull heroku master , git reset --hard もその前に試したが
ファイルが戻らず混乱した為、強行した内容。

1:Vagrant 内の.git 以外を全削除
2:$ git clone https://git.heroku.com/アプリ名.git
3:$ bundle install
4:$ rails db:migrate
5:$ rails s
6:.git の config ファイルが変だったので修正する
  ※git push heroku master がエラーで出来なかった為

修正した config

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "heroku"]
    url = https://git.heroku.com/アプリ名.git
    fetch = +refs/heads/*:refs/remotes/heroku/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

[remote "heroku"]とrefs/remotes/heroku/が origin に
なってたのでheroku へ修正した。

branchを試す

こういうときの為にbranch がある様です。

git checkout -b 任意の名前
とすると、master に干渉しないラインが出来上がります。
そこで作業して、heroku へは
git push heroku 任意の名前

で出来る様です。

ブランチを作成する

1:$ git checkout -b testbranch
 Switched to a new branch 'testbranch'
2:作業して
  $ git add .
  $ git commit -am "testbranch"
3:$ git checkout master
4:$ git merge testbranch
  ※この時点でtestbranchで管理しているコードが masteに反映される
5:$ git add .
6:$ git commit -am "comment~略~"
7:$ git push heroku master
8:$ heroku run rails db:migrate

これで無事にアップ出来ました。
本来は、複数人で開発する場合、それぞれのブランチで開発して、
管理者がmasterブランチに取り込んでいくという使い方をする様です。