ひとりで使うgit
きっかけ
gitが難しい理由がはっきりしたから。
メンテナーの濱野氏による解説を読みたかった。
ゴール
git add
,git commit
,git diff
,git status
,git show
コマンドを理解する。
目次
リポジトリの初期化
gitを始める。
$ git init
最初のコミット
すべてのファイルをステージに上げる
$ git add . $ git commit -m "first commit"
変更の記録する
👉 最初の変更をしたあとの場合を考える。
変更箇所の確認をする。
$ git diff
コミット直前に最終確認をする。
$ git diff HEAD #まとめてこれまでの差分の表示をする
- HEAD : 現時点で最新のコミットのこと
どのファイルがつぎのコミットに含まれているのか確認する
$ git status
👉 このとき不要なバックアップファイルが見つかれば.gitignore
ファイルに記述する。
一括コミットする場合(いろいろな流派あり)
$ git commit -a "Func 1 を仕上げました"
unified形式とは
- --- で始まる行は元のファイル
- +++ で始まる行は比較するファイルの名前とタイムスタンプ1が出力される
- @@ で始まる行は内容が異なる行を含むテキストブロックの範囲 ブロックは行頭の文字によって差分がわかる
行頭の文字 説明 patchコマンドの動作 +
元ファイルにこの内容を追加したものが比較ファイルとなる 追加 -
元ファイルからこの内容を削除したものが比較ファイルとなる 削除 半角スペース 修正箇所の周辺の内容 変更なし インデックスの概念を理解するといいらしい
- インデックス : リクエストされた状態をgitが記録する仕組みのこと
- gitは次の3つの状態をやり取りするプログラムである
- HEADの状態
- インデックスに記録した状態
- ワークツリーの状態
変更履歴を見る
コレまでを振り返る。
$ git log
部分変更を記録する
これまでのハンクを次のコミットに含めるか否か迷った場合
$ git add -p
その結果、HEADとインデックスを比べたい場合
$ git diff --cashed
その結果からコミットの決定をする場合
$ git commit -v
残りの変更をコミットする場合
$ git commit -a -m "hoge message"
ゴミファイルをコミットから外す場合
$ git reset fuga_fail