はじめに
こんにちわ、情報系大学院性なのにGithubが使えない男です。触れる機会は何回かあったんですが、pullとか云々とちょっと難しいそうだーと思って逃げてました。しかし、ちょっと志望で高めの企業のインターンとかで必要(必須?)になってきそうだったので、これを機に勉強しようと思いました。ただ本読んで終わりだと頭から抜けちゃうので、Qiitaで備忘録として残しておこうと思って書いてます。
(人のために書くというよりかは、自分のために書くので、ちょっと文章が雑かも、ごめんなさい)
さて、早速やっていきますかね〜
勉強教材
今回は、横田紋奈さんと宇賀神みずきさんが執筆された『 いちばんやさしいGit&GitHubの教本 第3版 人気講師が教えるバージョン管理&共有入門 「いちばんやさしい教本」 』で勉強させていただきます。
(理由は、、、優しそうな感じがしたから、、、以上)
Githubとは?
初っ端なんで「Githubとは?」から入ります。自分のイメージとしては、ファイルのバージョン管理が可能であり、人と一緒に作業する時とかに便利?(よう知らん)という感じです💦
[chapter1を読んだ後]
そもそもGitとGithubを同一に思ってしまっていた、、、ooh
なるほど、Gitが各時点でのファイルの中身・状態を記録して、記録した中身・状態にいつでも戻すようにできる仕組みなのね。
そんで、Githubが、Gitを利用してインターネット上で他社と共同作業できるようしたwebサービスなんね。なる。
名前だけ聞いた「コミット」とは?
人に言われるままに1回やったことがある「コミット」とはなんぞ?
コミットとは、任意のタイミングでファイルの状態を記録する操作のことを指す、、、らしいです。
なので、記録 = コミットという認識で問題なさそう。そうか私はあの時、ファイルの状態を記録していたのか〜
あと、単にファイルの中身を記録するのではなくて、いつ?誰が?何を変えた?についても記録してくれるらしい。そんで、あの時に戻りたい!となったら、コミット(記録)を選んで、戻ることができるということ。ふむふむ
あー、コミットは自動ではされないのねー、コミットするタイミングは任意と
コミットはハッシュ値(SHA-1)で指定可能
はてさて「リポジトリ」って?
リポジトリ*とは、コミットを貯めておく場所を指すとのこと。コミットをどこに溜めるのかなぁと思ったが、リポジトリにためるのねー、理解。また、既存のリポジトリを手元に持ってくる(コピーする)ことを「クローン」という。
ほう、種類とな?
リポジトリには、2種類に分類されるとのこと。
大きく、「ローカルリポジトリ」と「リモートリポジトリ」に分けられる。ローカルリポジトリが自パソコン内にあるリポジトリで、リモートリポジトリがインタネット上にあるリポジトリっと。
そんで、リモートリポジトリ用のサーバは自前で用意することも可能、あとGithubのようなサービスを使うことも可能。
リモートとローカルを使って、複数人で作業を行なっていく流れで、各自ローカルリポジトリで作業して、リモートリポジトリに反映させる。そんで、別の人はリモートリポジトリをローカルに反映させることで共同作業ができるということかー。
ローカルでの操作イメージ?
ふむふむ、Gitは フォルダー単位 で指定可能とのこと。なので、「Gitで管理するぞー」と決めたら対象のフォルダー内の全てのファイルが管理対象になる。そして、コミット対象のファイルをコミットすると、ローカルリポジトリに保持されるのねー
ふむ、ローカルリポジトリに保持されるまでに「ワークツリー」「ステージングエリア」「Gitディレクトリ」の3つを場所を使うらしい。
流れとしては、
1、ワークツリー内でファイルの編集
2、コミットしたいファイルをステージングエリアに登録
3、登録されたファイルをコミットするとGitディレクトリに保持される
ということー、あくまで大まかな流れ
ワークツリー
ワークツリー(別名,ワーキングツリー,作業ディレクトリ) は、編集の開始地点となる場所。
編集する場所という認識で大丈そ。
ファイルの状態を示す状態名として「unmodified」「modified」があり、名前通り編集したかどうかを意味する。そして、「untracked」は新しく追加されたファイルの状態、つまりGitの管理下にないファイルとのこと。
ステージングエリア
ステージングエリア (別名,インデックス)は、コミットするファイルを登録する場所。
コミットしたいものを、ワークツリーからステージングエリアに登録するっと。するとファイルの状態が「staged」に移るとのこと。そんで、untraced状態のファイルも直後はstaged状態になる。
・modified => staged
・untraced => staged
Gitディレクトリ
Gitディレクトリはコミットを保持する場所。
基本的にGitディレクトリにあるものは変更&削除できないっと。
コミットが無事に終わると、ファイルはunmodifed状態に戻る。そんで、編集すると、modifide・・・と続いていくのねー
リモートリポジトリの操作イメージ
ローカルにあるコミットした内容は、任意でリモートリポジトリに反映可能。(modifiedおよびstagedのものは反映されない)
リモートにあるコミットした内容も、いつでも自分のローカルに反映させることが可能とのこと。
おわり
読みながら雑ではありますが、書いてみました。
概ね自分なりに理解して飲み込めたかなと思います。知らんけど
さて次は、Chapter3(実践)へ行きます!!