2019/12/13-14

今日の日報

学んだこと   

詰まっているところ

  • git rmとrmの違いがわからない(mvも同様)
  • 単純にgitにあげたらLinuxのコマンドに「git」がつく(仕様的に)のかと思ったが、そうではなさそう(別物のようだった)

なんで詰まったのか

  • その前に動画内の『一旦ステージングエリアにあげたり、コミットした後にファイルを消す場合に、Linuxのコマンドrmやmvを使ってしまうと、Gitの方で「さっきまで管理していたファイルは一体全体どこいっちゃったんだ?」となるため』という言葉がわかってない

なんでわからなかったのか

  • 「ワーキングツリー」にあるファイルはGitの管理下じゃないの?
    (Gitはファイルの状態を保存する場所がいくつかある=「ワーキングツリー(作業エリア)」「インデックス(ステージングエリア)」「ローカルリポジトリ」「リモートリポジトリ」=これらは全部Git管理下にあるんじゃないの?)
  • となるとGitの管理下というのはどういうことなのか…
  • 管理されている状態ってどういうことなの?
  • Gitに管理されている状態をイメージできない…(Gitに管理されていないファイルとの違いは…?)
  • そもそもバージョン管理システムってやってることはわかるけど、どういう状態なの?

改めてGitのことを調べる

  • プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システム
  • ネットワークにアクセスできないなどの理由で中心リポジトリにアクセスできない環境でも、履歴の調査や変更の記録といったほとんどの作業を行うことができる(これが「分散型」と呼ばれる理由)
  • これまでの管理システムでは、サーバー上にある1つのフォルダを、利用者が共同で使っていた
  • 最大の特徴は、自分のパソコンに全ての変更履歴を含む完全なフォルダの複製を作成できる(「分散型」と言われる由縁)
  • 元フォルダのコピー=ローカルリポジトリ
  • ソースコードだけではなく他のファイル(画像やExcelファイルなど)も管理できる
  • GitはCUIツール(コマンドラインツール)
  • Gitではプログラムの状態がスナップショット*1として保存されている
  • このスナップショットのことをコミットと呼んでいる(コミットという単位でバージョンが管理されている)
  • コミットの履歴を辿ることでプログラムを特定のバージョンの状態に戻すことが可能
  • ローカル=個人の PC 上の環境
  • Gitでプログラムの変更履歴を管理する場合は、すべての変更はローカルリポジトリを介して記録される
  • ローカルのエリアは3つに分かれている(ワークツリー、ステージングエリア、ローカルリポジトリ

 

参考にしたサイト

www.sejuku.net
www.sejuku.net

backlog.com

backlog.com

本日の感想

  • やっとGitのことが少しわかってきた…
  • Gitのことがわかって、詰まった理由もわかった気がするのでその部分を言語化して早く問題解消しよう…!

*1:ある時点でのソースコードや、ファイル、ディレクトリ、データベースファイルなどの状態を抜き出したもののこと