Git勉強したての頃のメモ書きを修正して、残しておこうっと。
間違っていたら都度更新します。
Gitって?
ざっくり、ローカルにおいてある作業フォルダの変更履歴を覚えさせておく仕組みのこと。
gitを使う(有効にする)には、2ステップ必要。
- gitツールをダウンロード
- このフォルダはgitで管理するよ!と宣言する
- 対象のディレクトリ内で、
$ git init
を実行。
- 対象のディレクトリ内で、
Githubって?
Gitで管理するリポジトリの履歴をネットワーク上にも持たせておくことができるサービスのこと。
2方向の使い方がある。
- すでにGithubに置いてあるアプリケーションを、自分のローカルで動かしたい。
-> リモートリポジトリをローカルにコピーする。 - 自分がローカルで作ったアプリケーションをGithubに置く。
-> ローカルリポジトリを、リモートリポジトリに反映させる。
4つのステージ
ローカル&リモートどちらもで同時にGit管理するなら、4つの段階があることを意識する必要がある。
- 作業ディレクトリ(ワーキングツリー)
⬇︎git add //コミットの対象のファイルをステージングエリアへ移動
- ステージングエリア(indexエリア)
⬇︎git commit //ローカルリポジトリへコミット
- ローカルリポジトリ
⬇︎git push //ローカルリポジトリのコミット内容をリモートへ反映
- リモートリポジトリ
用語集
ブランチをきる
git branch {ブランチ名}
今いるブランチから、新たに派生するブランチを作ること。
ブランチは、マージがすでにされていれば削除可能。
どのブランチの最新でもないコミットをチェックアウトすると、HEADタグが現れる。
注意
- HEADタグに対してはコミットを行わない!!以降の変更がすべて破棄される!
ただし、誤ってHEADタグにコミットしても、ブランチとしてつなぎなおせば以降の変更も大丈夫。
- ブランチだけ作って、他のユーザと共有したい時、ブランチだけpushする必要がある。
git push origin {ブランチ名}
リベースとマージの違い
リベース
- 概要:すでに作成してコミット履歴のある作業ブランチの派生元ブランチの分岐ポイントを一旦切り離して、元ブランチの最新コミットに付け替えること。
- メリット:ブランチの履歴を汚さずに、派生元ブランチの履歴を自分の作業ブランチに取り込むことができる。
- デメリット:歴史を変えてしまうので、注意! リベースするブランチには自分以外に触っている人がいないことが前提!
マージ
- 概要:すでに作成してコミット履歴のあるブランチを、派生元ブランチの最新コミットへ結合すること。
- メリット:ブランチの履歴を変えずに、派生元ブランチの履歴を作業ブランチに取り込める
- デメリット:ブランチの履歴に矢印がいっぱいできてしまって見た目が良くない。
共通点
派生ポイントのコミットと最新コミットとの間では他の開発者による作業が反映されている可能性があるため、競合が発生する可能性が高い点に注意すること。
Command集
Sourcetree(視覚的でおすすめ!)を使っているのであんまりコマンド使うことないけれど、リカバリの時とか、リベースしたい時なんかはコマンドの方がわかりやすいので覚書。
git diff
変更内容を見る
git commit -am "コメント内容”
ADDとCOMMITを同時に行う。
git pull origin master / push
それからconflictをfixする。
git push origin master
masterをoriginにPUSHする
git rebase {派生元ブランチ} {派生ブランチ}
派生ブランチを最新の派生元ブランチに付け替える
Option tips
ローカルリポジトリは1つで、リモートリポジトリを2つ認識させて、コミット・プッシュを2つに対して同時に行いたい場合どうするか?
-> .git/config
のorigin: git@github.com:{user名}/{repo名}.git
をもう1行追加するだけ。