入門Git 第4章
❏ステージされた変更
作業ツリーにおける変更のうち、その変更についてリポジトリに伝えたいもののこと
- 変更をステージすると、Gitのindexが更新される
- Gitのindexはステージングエリアと呼ばれることも多い
❏ステージングエリア
リポジトリに対してコミットする前に調整できる場所のこと
git add -i
- 対話モードで色々できる
git add -p
hunk単位での追加するか否かを対話モードで選択できる
❏hunk
ファイル内の変更のこと
commitの仕方はひとつではない。
❏具体例
- ①
git add some-file
git commit -m “changes to some-file"
- ファイルの一部だけをコミットしたいときに便利
- ②
git commit -m “changes to some-file” -a
- 変更を一気にまとめてコミットしたいときに便利
- ③
git commit -m “changes to some-file” some-file
- 変更された複数ファイルのうち、1つ選択してコミットしたいとき便利
差分をみる
Gitでは、作業ツリーにあるもの、ステージングエリアにあるもの、リポジトリにあるものについてお互いの差分を表示できる
git diff
- ステージングエリアと作業ツリー間の差分を表示
git diff —cached
- ステージングエリアとリポジトリ間の差分を表示
git diff HEAD
- ステージングエリアを含めた、作業ツリー上すべてとリポジトリ間の差分を表示
HEADはキーワード
ファイルの管理
git mv <元ファイル> <新ファイル>
- ファイル名変更やファイルの移動だけでなく、新しいファイルに対するgit add, 古いファイルに対するgit rm(リポジトリからファイル削除)も実行してくれてる
入門Git 第3章
- リポジトリに格納される一つ一つの履歴がコミット
個々のコミットがコードの進捗の目印になる
ステージするとその変更はコミットの準備が整えられたことになる
Gitにはプロジェクトコードが保持される場所が3つある
コミットログには最低限「なぜ」を含める
git branch 作りたいブランチ名 分岐元ブランチ名
git commit -a
- Gitが変更された作業ツリーのファイルをすべてコミットする
rebase
- ブランチから変更を取り出してきて、それを別のブランチの先頭で再生すること
疑問
- git checkout branch_name, git checkout file_nameがごっちゃ。ひとつの統合されたcheckoutって概念があるのか?
なべあつ的な階乗計算
引数が3を含んでいたり、3で割り切れたりしたら通知して、その引数の階乗を表示するやつ
Ruby クラスやモジュールを自動で必要なときになってからロード
めったに使わないライブラリを毎回全部ロードは避けたい。