git用語
origin
- リモートレポジトリの場所(URL)の別名
HEAD
- 今いるブランチの最新のコミットへのポインタ
インデックス(ステージング)
- Subversionには存在しない領域で、ワーキングツリーとリポジトリ間にある一時領域
- ステージングエリアとも呼ぶ
ステージ
- 作業ツリーの変更をインデックスに登録(
$ git add
)すること
ブランチ
- ローカルブランチ
- ローカルリポジトリで管理されるブランチ
- リモートトラッキングブランチ(追跡ブランチ)
- リモートブランチの情報を持っているローカルリポジトリの中の特殊なブランチ
- リモートブランチを、ローカルリポジトリでトラッキングするためのブランチ
- リモートブランチを参照するため"だけ"に利用する
- このブランチは変更できない
- 「origin/master」というのは、originという名前のリモートリポジトリにあるmasterブランチをトラッキングしていることを意味する
- リモートブランチ
- リモートリポジトリにあるブランチ
トピックブランチ
-
何か特定の機能に関する作業を行うための場所としてのブランチ
トピックブランチを使った作業の流れは、
1. ブランチを作成する
2. ブランチで作業する
3. マージする
4. ブランチを削除する
となる
gitコマンド
git add
- 新しいファイルや修正したファイルをインデックスに追加する
- コンテンツをステージする (次回のコミットに含めるようgitに指示する)
git push
-
リモートリポジトリに自分のリポジトリの内容を送信する
-
git push <repository> <refspec>
<refspec>を省略すると、デフォルトではリモートリポジトリとローカルリポジトリの双方に存在するブランチが対象となる
-
git push <リモート送信先リポジトリ> <ローカル送信元ブランチ>:<リモート送信先ブランチ>
例)topic-branch ブランチの内容を origin サーバーにプッシュしたい場合
$ git push origin topic-branch
git branch
git branch [topic-branch]
現在のブランチを元に新しいブランチが作られる
git branch [topic-branch] develop
ローカルのdevelopを起点に新しいブランチが作られる
git branch [topic-branch] origin/develop
リモートのorigin/developを起点に新しいブランチが作られる
※自動でorigin/develp追跡ブランチの設定も行われる
git branch -vv
追跡しているブランチ名を表示する方法
追跡ブランチの設定を行うと、
引数なしで git push を実行するだけでフィーチャーのプッシュを行うことができる
git checkout
-
操作対象とするブランチの切り替え(移動)
-
リポジトリに存在するブランチをワーキングツリーに展開する
-
ステージエリアも切り替わる
-
-bオプションを付けた場合、新たにブランチを作成し、そのブランチに切り替える。ということになる。
例)ローカルブランチ名を指定してリモートブランチをチェックアウトする
$ git checkout -b [other_branch] [origin/other_branch]
git fetch
-
ローカルのリモート追跡ブランチをリモートのブランチと同期させること
-
リモートリポジトリにあるブランチの最新情報をローカルリポジトリに取得すること
-
pullのようにファイルが更新されるわけではなく、ローカルリポジトリが更新されるだけ
例)ローカルリポジトリをリモートリポジトリと同期する
$ git fetch origin
git merge
-
現在の作業ブランチに別のブランチで行われた変更点を取り込む
例)リモートブランチと同期したデータ、追跡ブランチをローカルリポジトリに取り込む
$ git merge origin/other_branch
git rebase
-
ブランチの派生元(上流)を変更する
-
git rebase <派生元ブランチ>
カレントブランチの履歴が派生元ブランチの後ろに付け替えられ、履歴が一本化されるコンフリクトした場合、解消後に以下コマンド
$ git rebase --continue
git pull
- git fetchでローカルの追跡ブランチにリモートブランチのデータを反映し、トピックブランチにmergeする