自分の知識レベル
CVSを多少触ったことあるレベル
gitについては、学びはじめた始めたばかりで何もわからない
gitを使ってしたいこと
Laravelを利用そたPHPアプリで以下のことをしたい
1.バージョン管理
2.プロダクション環境へのデプロイ
1はいいとして、主にやりたいのは2の内容。
自分で契約したVPSにリモートリポジトリを構築し、そこに更新を加えることで、プロダクション環境も更新される仕組みを作りたい。
gitの用語整理
リモートリポジトリ
cvsやSVNでいう所のリポジトリと同じ
リモートにあるリポジトリ
ただし、自身のローカルに作ることも可能
ワーキングツリー
cvs的にいえば、チェックアウトしてきたプロジェクト
cvsとは異なり、履歴や管理情報を丸ごとコピーしてくる
リモートリポジトリをローカルにバックアップするようなイメージ?
ローカルリポジトリ
リモートじゃなくて、ローカルにあるリポジトリ
ワーキングツリー
自分でブロジェクトを始め、ローカルに保存するのであれば、リモートリポジトリ=ローカルリポジトリのリポジトリが1つできる。
ステージングエリア(index)
コミットする前に、どのファイルをコミットするか選択した情報を保存している場所
複数のファイルが更新されている場合に、コミットすべきものを決められる
コミット
ワーキングツリーにコミットする
cvsとは異なり、リモートリポジトリに反映はしない
push
ワーキングツリーにコミットした内容をリモートリポジトリに反映すること
origin
デフォルトではリモートリポジトりを指す
master
ブランチを切っていない状態でできるデフォルトのブランチ
ブランチを切っていなければ、ワーキングツリーとイコールになる
origin/master
リモートリポジトリをローカルに保存したもの(ブランチ)
gitでは、リモートからクローンしてくることで、origin/mastertができる。
それと、作業用のmasterができる。
masterの変更点はorigin/masterと比較することで表示されている(と思われる)
gitのコマンド整理
git init
カレントディレクトリでバージョン管理を開始する。
git add
バージョン管理対象になっているディレクトリにおいて、変更点をインデックス対象にする
git add ファイル名
ファイル名を個別に指定
git add .
変更されているファイルを全て対象に指定
git commit
インデックス対象のファイルを全てワーキングツリーにコミットする
git commit -m "コミットメッセージ"
git push
ワーキングツリーの変更をリモートリポジトリにコミットする
git push [リモートリポジトリ] [ブランチ]
git push
だけにするとoriginリポジトリについて、ローカルのマスターをリモートのマスターへ反映するという意味になる。
git clone
リモートリポジトリから、丸ごと持ってくる
git diff
ワーキングツリーにどのような変更を加えたかを表示する
git status
以下の3つの状態を表示する。
-ステージングとして選択されたファイル
-コミット済みのファイル
-どちらも行なっていないが変更が発生しているファイル
当初目的の実現
デプロイの実現は、ここでは書ききれなかったので、別の記事で記載予定
参照
http://dqn.sakusakutto.jp/2011/10/git_push_origin_master.html
https://nekosoftware.wordpress.com/2015/02/03/git%E3%81%AE%E3%81%B5%E3%82%8F%E3%81%A3%E3%81%A8%E3%81%97%E3%81%9F%E7%9F%A5%E8%AD%98%E3%82%92%E8%AA%BF%E6%9F%BB%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/
https://qiita.com/osamu1203/items/cb94ef9da02e1ec3e921