TAK TECH NOTE

サーバサイドエンジニアを目指し勉強した内容を発信するブログです。

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ブランチではなく別のブランチを切って行うようにする。