Kanisaruの365日

学習より創造である。 創造こそ生の本質なのだ。

ひとりで使う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

参考文献

www.amazon.co.jp

www.youtube.com