フクチ@プログラミングと釣り好き大学生のブログ

プログラミングと釣りと、ときどき日常生活

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で初期化します。

f:id:Yuki-F:20170518003150p:plain

その後に今回はgitの中にtestというフォルダを作成してその中にtest.txtを作ります。

下のような感じでエディタ上でファイル作成の後にテキトーに文字を入れて保存します。

f:id:Yuki-F:20170518002457p:plain

 

そして $ git status (gitの状態を見るコマンド)を打つと

f:id:Yuki-F:20170518004524p:plain

untracked filesの中に test.txtがあります。これはまだstagedの段階に上がってないという意味。

 

 

リポジトリに記録する準備 ---staged

次にtest.txtをリポジトリに記録する準備(=stagedにする )をします。

 $ git add test.txt  を打って再び statusをみてみると

f:id:Yuki-F:20170518005403p:plain

なんか色が変わってる!!!!!

これが stagedになった瞬間です!!

git add (ファイル名)でstagedに上がれます いやーシンプルですね。

 

ちなみに

今回は新規ファイル作成で new fileと表示されたのですが、内容を変更したりすると

modified : ファイル名   となります。 

 

 

リポジトリにファイル状態を記録 ---commited 

さて、早速リポジトリに記録していきましょう!!

 

git commit -m 'メッセージ'でリポジトリにうつすコマンドです。

* ' 'の中身として、実際にはソースコードの変更・修正内容を書きます。

 

$ git commit -m 'file作成' を打つと

f:id:Yuki-F:20170518005841p:plain

これで、完了のはずですが,

 

わかりづらい!!

 

ここで tigが出てきます! tigは実際にcommitされたか確認するツール的なやつです。(今回はgitのお話なので詳しいtigの説明は省略します。) 

 

$ tig を打つと 画面が変わり、上の方に出てきます。

f:id:Yuki-F:20170518010415p:plain

これでリポジトリの中にファイルの状態が記録されました。

 

 これが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について書いていきたいと思います 。

では、また明日〜!