Gitのキホン
参考:https://qiita.com/gold-kou/items/7f6a3b46e2781b0dd4a0
上の記事を参考に、今まで曖昧な理解だったGitについて調べてみた。
発端はAWSで開発してHerokuにデプロイしていたアプリをMacにGitCloneしてから盛大にコケたからである。
ステージング・ローカルリポジトリ・リモートリポジトリ
Gitには作業の変更を記録する場所が3段階に別れている。
これらとは別に、ファイルの編集作業場所をワーキングツリーという。
ステージング環境
コミットするためのファイルを記録する場所。
ワーキングツリーの変更内容をaddコマンドでステージング環境へ記録する。
ローカルリポジトリ
リモートリポジトリにアップロードするためのコミット履歴とファイルを記録する場所。
インデックス上のファイルをcommitコマンドでローカルリポジトリにコミットする。
リモートリポジトリ
複数人で共有する場所。俗にいう本番環境である場合が多い。
ローカルコミットしたファイルをpushコマンドでリモートリポジトリにアップロードする。
ブランチ
ブランチとは作業履歴を枝分かれさせて記録していくものである。
リモートのmaster(幹の部分に当たる)と言うブランチから新たにブランチを切って作業を行っていくケースが多い。
ブランチを切る
新しく作業を始める時、ブランチを切ると言う。
ブランチの切り方についてみていく
1.リモートの最新の情報をローカルに取得する。
$ git fetch
2.どのブランチから切るか確認する。
$ git branch -a -v
3.2で選んだブランチから新しくブランチを切る。
$ git checkout -b 新たなブランチ名 切る元のブランチ
4.ブランチが正しくできたか確認
$ git branch
ex.ローカルにリモートの更新内容を反映する。
$ git fetch $ git merge ブランチ名
Herokuからのclone
散々コケたHerokuからのcloneは下記のコマンド1行で、cloneもリモートリポジトリの登録もしてくれるようである。
$ heroku git:clone -a APPNAME
リポジトリ名は"heroku"となるようである。
また、以下のコマンドでリポジトリ名"heroku"に任意のアプリのgitURIを紐づけることができるので、複数のherokuアプリを管理する場合に有効である。
$ heroku git:remote -a APPNAME
まとめ
今回はリポジトリやブランチについて、herokuとのgitのやりとりについてまとめた。
新しい機能追加やバグ修正を行うなど作業を行うときはmasterブランチではなく別のブランチを切って行うようにする。