サルでもわかるGit入門/発展を読みメモとしてまとめる
場所
リモートリポジトリ
↑
ローカルリポジトリ
↑
インデックス
↑
ワーキングツリー
状態確認コマンド
・git status:ワーキングツリーとインデックスの状態確認。赤色がワーキングツリー。緑がインデックス
・git diff:ワーキンググリー上で変更箇所を表示
・git diff --インデックス上でstaged:変更箇所を表示
・git log:ローカルリポジトリーの状態を確認
・git log --oneline:ローカルリポジトリーのログのみの状態を確認
error
・Untracked files:ワーキングツリーからインデックスに上がってない状態のファイル
↓
git add .
・Changes to be committed:インデックスからローカルリポジトリに上がってない状態のファイル
↓
git commit
競合
==で区切られた上側がローカルリポジトリ、
下側がリモートリポジトリの編集内容ば表しとるとよ。
>>>>>HEAD
hello → ローカルリポジトリ-
=====>
こんにちは → リモートリポジトリ-
>>>>>
git chでのエラー
コミットせず、ワークングツリー(未add&未commit)やインデックス(済add&未commit)に
残ったまま違うブランチに移動すると、その変更箇所を引き継いだまま違うブランチに移動する。
しかし、移動先ブランチで変更箇所が変更されていた場合checkoutができない。
mergeとrebaseの違い
・結論:履歴のあり方の違い
・merge:枝分かれしたbranch履歴と、masterのbranch履歴を合わせない(履歴が分岐した状態で)で合併する
・rebase:枝分かれしたbranch履歴を、masterのbranch履歴の前に追加して履歴を一本化して、合併する
pull と fetch 違い
・pull(fetch+merge) 最新履歴を取得してmergeする
・fetch 最新履歴を取得
その他のコマンド
・git commit --amend:commit messageを書き換える
revert と resetの違い
・git revert:commit を取り消す commit を作る
・git reset
soft:コミットを削除
hard:コミット+インデックスを削除