gitまとめ
参考:git--local-branching-on-the-cheap
gitとは?
リモートレポジトリとは?
pullとは?
ワーキングツリーとは?
- 人間が直接触って編集することのできる領域。
- ここでファイルを編集して動きを確認することができる。
- gitではファイルの集まりのことをツリーと表現する。ツリーとはデータの構造のことではない。
ステージとは?
- HEADに移行する前段階のこと。
- インデックスとも呼ばれる。
- git add
- addされるとインデックスの状態が変化する。
HEADとは?
- HEADとは最新のコミット状態を指し示すポインタのようなものである。
- ステージからgit commit することでHEADを変更することができる。
- HEADのソースコードはpushすることでリモートレポジトリに反映させることができる。
スタッシュとは
- 前述ようにステージやワーキングツリーにファイルがあるとgit pullすることができない。
- git checkout して他のブランチでの作業を行うと現在のワーキングツリーの情報が失われてしまう。
- 作業途中の状態でcommitしたくない。
- 上記のような時にスタッシュを行うことで作業中のファイルやステージのファイルを隠して取っておくことができる。
ブランチとは?
- git管理下の領域のファイルに並行して別の変化を加え、そのバージョン管理を行うための仕組み。
- 異なるブランチ同士は同じ名前でもとは同じ一つのファイルであっても、別のファイルであるかのように扱うことができる。
- リモートリポジトリでもそれぞれ対応するブランチを作成し、それぞれが同期するように扱うことができる。
- 枝分かれさせて開発しているブランチはそのブランチでの開発が完了した時に別のブランチにマージして、終了することができる。
- pushやpullもブランチ単位で行う。
- pullした時にコンフリクトが起こることがある。
コンフリクトとは?
- pullしたリモートのブランチのHEADがローカルのHEADの同一箇所で異なる状態であること。
pushとは?
gitのバージョン管理とは?
- 最新のバージョンのことをHEADと呼ぶ。
- HEAD以前のバージョンにはハッシュ値が付与されている。
- git resetやrevertで過去の状態に戻すことができる。
resetとは?
git reset soft
- HEADの位置を指定の位置まで戻す。
git rese mixed
- HEADの位置とステージの状態を指定の位置まで戻す。
git reset hard
- HEADの位置とステージの状態とワーキングツリーの状態(変更)を指定の位置まで戻す。
- hardを使う時には注意が必要。
- 他のオプションと異なり、ワーキングツリーの状態まで変化するためやり直しがきかない。
resetの対象のファイルの指定
- ファイルを指定する場合にはHEADの位置の変更はできない。(reset hardはできない)
- インデックスのファイルをHEADの状態に戻したりすることができる。
戻る位置の指定方法
最新のコミット
- HEAD
- 現在のHEADの位置
一つ前のHEADの位置
- HEAD^
- HEAD~
二つ以上前のHEADの位置
- HEAD^^
- HEAD~~
- HEAD~2