Git に感動 ①
Git
こんばんは!
前々から予約していた星野源のMV集が届いてご満悦な福地です。
今回はweb本とは離れて 「Git」について書いていきます!
というのも先日、我らがチームのメンター、さぼさんが3時間以上かけて僕らに「git」と「Github」について教えていただきました。(マジ感謝です。)
ってことで
・Gitとは?
・Gitの3つの段階
・gitのコマンド
の3つで書いていきます。
Gitとは?
まずはGitの意味から
Git:プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである---参照 wikipedia
。。。。分散型バージョン管理システムとはなんぞや。
こういう時は分解して見るのが良き
分散型:分散して機能を持たせること
バージョン管理システム:ファイルの作成日時、変更日時、変更点などの履歴を保管するシステム(ここで言うバージョンはファイルの状態のこと。 ex.ファイル1の内容更新してファイル2にして保存するとファイル1のバージョンがファイル2に変わった的なやつ)
なるほど。
要はGitは「ソースコードなどの変更履歴を記録・追跡するために(各バージョンごとに)分けて履歴を保管するシステムのこと」ということ。
ちなみに他のサイトでは
Gitとは、コンピュータ上のファイルなどの変更を記録し、その変更履歴を管理するためのバージョン管理ツールです。同時に、複数の作業者が同時に変更を行ったり、その履歴を管理するための機能を併せ持っています。 ---参照 Gitとは? 3分で分かる、Gitの「超」入門知識まとめ
なるほどなるほど。何となく理解してきました。
さてさて実際にやってみようと思いますが、事前準備として
brew installコマンド で git と tig(何かは後ほど説明)をインストールします。
あとはgitの中にフォルダを作ったら準備完了です。
Gitの3つの段階
Gitとは何か、がわかりました。実際にソースコードなど変更を行い履歴を リポジトリ(履歴の保管場所)に記録していくにはどうしたらよいのでしょうか。
そのためには Gitの3つの段階を理解していく必要があります!
①ファイル内容修正が反映されていない段階 ---untracked
②リポジトリに記録する準備 ---staged
③リポジトリに記録 ---commited
の3つの流れで変更状態がリポジトリに記録されていきます.
①ファイル内容修正が反映されていない段階 ---untracked
百聞は一見に如かずと言うことで実際に見てみましょう!
まず、 Gitに移動した後に$ git initで初期化します。
その後に今回はgitの中にtestというフォルダを作成してその中にtest.txtを作ります。
下のような感じでエディタ上でファイル作成の後にテキトーに文字を入れて保存します。
そして $ git status (gitの状態を見るコマンド)を打つと
untracked filesの中に test.txtがあります。これはまだstagedの段階に上がってないという意味。
②リポジトリに記録する準備 ---staged
次にtest.txtをリポジトリに記録する準備(=stagedにする )をします。
$ git add test.txt を打って再び statusをみてみると
なんか色が変わってる!!!!!
これが stagedになった瞬間です!!
git add (ファイル名)でstagedに上がれます。 いやーシンプルですね。
ちなみに
今回は新規ファイル作成で new fileと表示されたのですが、内容を変更したりすると
modified : ファイル名 となります。
③リポジトリにファイル状態を記録 ---commited
さて、早速リポジトリに記録していきましょう!!
git commit -m 'メッセージ'でリポジトリにうつすコマンドです。
* ' 'の中身として、実際にはソースコードの変更・修正内容を書きます。
$ git commit -m 'file作成' を打つと
これで、完了のはずですが,
わかりづらい!!
ここで tigが出てきます! tigは実際にcommitされたか確認するツール的なやつです。(今回はgitのお話なので詳しいtigの説明は省略します。)
$ tig を打つと 画面が変わり、上の方に出てきます。
これでリポジトリの中にファイルの状態が記録されました。
これがGit を使ったリポジトリに記録するまでの流れです。
主なGitコマンドについて
今回使った コマンド + よく使われるコマンドをまとめました。
- git init : gitディレクトリが作成される
- git status : そのディレクトリ内のファイルがどのような状態にあるか分かる
- git add : untrackedのファイルや変更したファイルをgitに取り込む
- git commit (-m '' ) : ローカルリポジトリ に記録する
- git checkout : 前回のcommitの状態に戻る
- git reset : ステージにうつしたファイルの取り消しができる
- git rm : untrackedにする (ファイルも消える)
- git rm --cached : commitしたファイルをuntrackedに戻す
参照 ----まさ@ブログ書き込み中
--------------
次はこれを git hubについて書いていきたいと思います 。
では、また明日〜!