RareTECH受講生ブログ

RareTECHの受講生がアウトプットに利用しているブログです。

【初級編】gitコマンド入門

1. Gitとは

1-1. Gitを使うメリット

  • 複数人で同じファイルを編集する際に効果的。 (集団開発)
  • 過去の状態に戻るために必要


1-2. リポジトリとは

  • 開発対象のデータが全てまとまっているデータベースのようなもの。
    リモートリポジトリローカルリポジトリが存在する。

  • 「リモートリポジトリ」→ 他人と共有して使用する、開発における要となるリポジトリ
    GitHubとGitLabの2種類が存在し、用途によって使い分ける。

  • 「ローカルリポジトリ→ 自分の開発環境上のみに存在する、自分だけが触れるリポジトリ


言葉だけだとなかなか理解しづらいので、下の図を見てみましょう。

f:id:Futaa:20210201101417p:plain
リモートリポジトリとローカルリポジトリの関係

このように、リモートリポジトリとローカルリポジトリは上図のようなCopyとUploadの関係で成り立っています。リモートリポジトリから開発対象のデータを自分の開発環境であるローカルリポジトリにCopy、そして自分の開発環境で追加や修正のコードを書いてそれをリモートリポジトリにUploadするのです。

本来ならCopyやUploadにはGitの専門用語があります。


1-3. 2種類のリモートリポジトリ

前項では、リモートリポジトリには2つの種類が存在すると説明しました。
GitLabGitHubです。これらの違いについて確認しましょう。

GitLabは主に企業における集団開発において使用されるリモートリポジトリで、有料です。
一方、GitHubは全世界にソースコードを公開することができる一般向けのリモートリポジトリで、無料です。そのため、例えばRailsで作ったwebアプリケーションのソースコードを参考にしたい場合はGitHubで検索して、他人の書いたソースコードを見ることができます。また、自分の作ったポートフォリオなどの作品をGitHubに公開し、他人に見てもらうこともできます。
ただし、自分の作品を公開する際はソースコードMySQLなどのパスワードが記載されていたり、秘密鍵も同時に公開対象にしてしまうのはセキュリティ上大変危険な行為です。注意しましょう。



2. 超重要! Gitの概念「BranchとCommit」

2-1.Gitを支える重要な2つの概念

Gitを使うことで得られるメリットに関しては前章で説明しました。覚えていますか?
もう一度振り返ってみましょう。

  • 複数人で同じファイルを編集する際に効果的。 (集団開発)
  • 過去の状態に戻るために必要

この章では、2つ目の「過去の状態に戻るために必要」ということに関して深く触れていきたいと思います。この機能を支える2つの概念は、Gitを扱う上で大変重要なものとなってくるので、ここで理解しておきましょう。

  • 「Branch」 → 開発成果の履歴を1つの線で表したもの。枝に似ていることからBranchと呼ばれる
  • 「Commit」 → Branch上に存在する開発成果の1つ1つを表す。Branchはこれが複数存在することで成り立つ



3. 実践! Gitに触れてみよう

これまでの章ではGitとはどういうものなのかについて説明してきました。しかし、これらの説明をより深く理解するには実際にGitを触ってみるのが一番です!
この章では、自分のPC上に作業ディレクトリを作って、実際にいくつかCommitを作成してみましょう。その上で、Branchの変化の様子についても見ていきます。

まずは、sampleというディレクトリを作り、それを作業ディレクトリにします。
以下のコマンドを打ってください。

$ mkdir sample
$ cd sample
$ git init

git initコマンドを使うことで、カレントディレクトリを作業ディレクトリとすることができます。
今回はsampleがカレントディレクトリなので、sampleは作業ディレクトリとなりました。

それでは、作業ディレクトリの中で作業をしてみましょう。
今回は試しにsample.txtというファイルを作成し、編集することでgitを体験していきます。以下のコマンドを打ってください。

$ touch sample.txt

touchコマンドを使うことで、空のファイルを作成することができます。

sample.txtが作業ディレクトリに追加されたことで、gitの状態が変化しました。
以下のコマンドを打って、gitの状態を確認してみましょう。

$ git status

きっと以下のような文章が表示されたと思います。

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        sample.txt

nothing added to commit but untracked files present (use "git add" to track)

「Untracked files: 以下のファイルはインデックスに追加されていないのでCommit出来ませんよ」ということを表しています。
つまり、Commitをする前に、インデックスにファイルを追加してあげないといけないのです。

インデックスにファイルを追加しましょう。以下のコマンドを打ってください。

$ git add .

addの後ろの「.」カレントディレクトを表すものです。上記のコマンドで、インデックスにsample.txtを含むカレントディレクトリのファイルを追加することが出来ました。

これで、ついにCommitをすることが出来ます。早速やってみましょう。
以下のコマンドを打ってください。

$ git commit -m 'ver1.0 最初のコミット'

上記のコマンドでCommitをすることが出来ました。 Commitされているか確認するために以下のコマンドを打ってみましょう。

$ git log --graph

上記のコマンドを打つと、「ver1.0 最初のコミット」と表示されたと思います。
一番上のアルファベットと数字の羅列はハッシュ値です。

余裕があれば、sample.txtを編集→インデックスに追加→Commitを繰り返してみましょう。
以下のコマンドを2~3回繰り返して、Branchの変化の様子を見てみます。

$ vim sample.txt
※文字を入力&編集してみましょう。
$ git status
$ git add .
$ git commit -m '説明文'
$ git log --graph


これにてGitの実践は終了です。お疲れ様でした!!



4.最後に

今回はGitについて、その基礎となるものを学んでいきました。

RareTECHではこのようなハンズオン形式を含めた授業を月に8回、ライブ講義にて行っています。
興味のある方、そして価値のあるエンジニアになりたいという方はRareTECHのHPをご覧ください。 raretech.site


また、RareTECH公式LINE@では以下の内容を発信しています。
(2020年12月時点:登録者数750名)

  • おすすめのプログラミング言語
  • 初心者がやりがちな意味のない勉強法
  • おすすめの優良記事
  • 簡単な質問対応

特に、勉強方法について困っていることがあれば質問してみるのもお勧めです!
以下の URLからRareTECH公式LINE@を登録できます。
https://landing.lineml.jp/r/1654804352-xmngLnqd?lp=Ld9S5W