Gitを使ってみよう!【スタート編】

Git

こんにちは、ECF Tech
ブログ担当 Michiです。

今回は「Gitをはじめよう」ということで、バージョン管理ツール「Git」について書いていきたいと思います。

対象読者

  • コマンドプロンプト上でのコマンドであるcddirを使ったことがある
  • エクスプローラでファイル操作ができる
  • バージョン管理やgitって何?という方
  • ハンズオン形式で試せる資料がほしいという方

※なお、本資料はWindows向けの資料となっています。

Gitを試すための事前準備

本記事はハンズオン(使いながら学んでいく)形式となっています。実施するにあたり、次の2つの事前準備が必要となります。必要な方はリンク先をご参照ください。

Githubアカウントの作成

Gitを使ってみよう!【GitHubアカウント編】
こんにちは、ECF Techブログ担当 平良です。今回もGitを使ってみよう!と題して、GitHubアカウントの取得手順をレポートしたいと思います。※執筆時点(2019.09.14)の内容です。本記事は下の記事の関連記事として準備したもので...

Github for Windowsのインストール

Gitを使ってみよう!【Git for Windowsインストール編】
こんにちは、ECF Tech ブログ担当 Michiです。 今さらながら最近Gitを使う機会が増えてきたので、いろいろまとめていきたいと思っています。よろしくお願いします。 本記事ではWindows上でGitを使う上で必要となるGit ...

バージョン管理ツールとは

バージョン管理ツールとはなんでしょう。その事について理解するには、バージョン管理ツールがない世界を考えるとわかりやすいでしょう。

業務システム構築のために作られるプログラムは膨大で、多数のプログラムファイルを作ることとなります。

そうなると、こんなことが起こるわけです。

そこでバージョン管理ツールの登場です。バージョン管理ツールを簡単に説明するならば、ファイルの変更履歴を管理して、いつでも好きなの状態に戻せるといった能力を備えたツールです。これを用いることによって、上のようなミスをほとんどゼロにすることが可能です。

gitのバージョン管理システム

ではハンズオンを始めるにあたって、gitのしくみを少しだけ説明しておきたいと思います。

gitではリポジトリ(repository)と呼ばれるものでファイル履歴を管理しています。リポジトリは、ファイルの履歴を管理しているデータの総称です。ファイルの作成・変更・削除の情報はすべてこのリポジトリで管理しています。

リポジトリにはリモートリポジトリローカルリポジトリがあります。リモートリポジトリはプロジェクトに参加するすべての作業者の共通リポジトリです。ローカルリポジトリは、作業者それぞれの作業フォルダにあるリポジトリです。次のようなイメージになります。

編集したファイルの内容をリポジトリに記録することをコミットといいます。コミットをしておくことで、その時点でのファイルの編集内容が記録されます。それによりこれ以降にファイルを編集したとしてもすぐにまたこの時点の状態まで戻すことができます。

Gitを始めよう!

まずは、githubでリモートリポジトリを作成します。


※画面の黒塗りつぶし部分はアカウント名です。

  • リポジトリ名は自由です。ここでは「hello_repo」とします。
  • Descriptionには、リポジトリの説明を入力します。
  • Publicは公開リポジトリです。URLが分かればだれでも見ることができます。
  • Initialize this repository with a READMEのチェックボックスは、READMEファイルを同時に作成します。 今回はチェックしません。

Create repositoryをクリックします。

リモートリポジトリができました。

Creating a new fileをクリックして、ファイルを作成してみましょう。

  • ファイル名はreadme.txtとしています。
  • テキストの内容は「はじめてのGit用リポジトリです。」と入力しました。

テキストファイルができたらコミットをしてみましょう。コミットをするときにはコメントを入れておくことができます。「Readmeを作成しました。」と入力してCommit new fileをクリックしましょう。

readme.txtファイルが1つ作成されていることがわかります。

ローカルリポジトリの作成

では次に自身のパソコン上にローカルリポジトリを作成します。

今回はC:\work01のフォルダをローカルリポジトリを置くためのフォルダ(以降、作業フォルダと省略)とします。

作業フォルダへ移動

C:\>cd C:\work01

このフォルダでリモートリポジトリをコピーしましょう。この操作を「クローン(clone)」といいます。

クローン操作により、リモートリポジトリの内容がローカルリポジトリにコピーされます。また、管理対象のファイルもコピーされます。

クローンするにはリモートリポジトリのURLが必要となります。Githubで次のように確認できます。

URLが分かったら次のコマンドでクローンします。

C:\work01>git clone https://github.com/XXXXXX/hello_repo.git

実行結果

Cloning into 'hello_repo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.

クローンができました。dirコマンドを実行するとフォルダができていることがわかります。

C:\work01>dir /b
hello_repo
※dirコマンドは、現在見ているファイルやフォルダの一覧を表示するコマンドです。/bオプションをつけると、ファイル名のみを表示できます。

フォルダ移動するとファイルがあることがわかります。

C:\work01>cd hello_repo

C:\work01\hello_repo>dir /b
readme.txt

内容もちゃんとコピーされています。
はじめてのGit用リポジトリです。

これで作業する準備が整いました。では早速プログラム開発をするイメージで作業をしていきましょう。ファイルprogram01.txtを新規に作成し、次のように記述して保存します。

計算できる機能A

計算できる機能Aが追加されました。

プログラムを作成したらローカルリポジトリにコミットしましょう。

といっても新規に作成したファイルprogram01.txtはまだGitに管理されている状態ではありません。git statusコマンドを使って、現在の状態を見てみましょう。

git status

実行結果

On branch master
Your branch is up to date with 'origin/master'.

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

program01.txt

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

Untracked filesの中にprogram01.txtがあるのがわかります。これはそのファイルがUntracked(追跡されていない)ことを表します。つまり、Gitの管理対象になっていません。

まずはprogram01.txtをGitの管理対象にしましょう。そのためには、git addコマンドを実行します。下のように入力し、Enterキーを押します。

git add program01.txt

実行結果

Your branch is up to date with 'origin/master'.

Changes to be committed:
(use "git reset HEAD ..." to unstage)

new file: program01.txt

program01.txtがGit管理の対象となりました。

これでコミットの準備ができました。git commitコマンドを実行しましょう。

git commit -m "機能Aを追加"

-mはコメントをつけるためのオプションです。コメントは"で囲みます。

実行結果

[master 4fa5146] 機能Aを追加
1 file changed, 1 insertion(+)
create mode 100644 program01.txt

コミットが完了しました。

ではもう少し作業を行ないましょう。再度program01.txtを開き、次のようにして保存します。

計算できる機能A

計算できる機能B

次にprogram02.txtを新規に作成。次を記述し保存します。

表示するための機能A

ここで2つのファイルをコミットします。が、ここで注意すべき点があります。それはprogram01.txtgit addコマンドで追加しなければならないということです。

ここでGitのファイル管理方法について確認しておきましょう。Gitでは作業フォルダ内のファイルを、次のような状態を持つものとして管理します。

  • untracked(管理対象外)
  • tracked(管理対象)
    • unmodified(変更がない)
    • modified(変更がある)
    • staged(コミット対象である)

※()内は直訳ではありません。

現在の作業フォルダの状況を表すと、次のようになります。

program01.txtは変更があったので、現在はmodifiedの状態です。コミットするためにはgit addコマンドを用いてコミット対象ファイルとする必要があります。

このコミット対象ファイルとする操作はステージング(staging)と呼びます。

では、git addコマンドで2つのファイルをコミット対象ファイルにします。

git add .

対象を.とすることで、すべての修正ファイルをコミット対象ファイルにすることができます。
git commitコマンドでコミットします。

git commit -m "計算する機能B、表示する機能Aを追加"

実行結果

[master 807b067] 計算する機能B、表示する機能Aを追加
2 files changed, 4 insertions(+), 1 deletion(-)
create mode 100644 program02.txt

今回の開発作業はここまでです。といっても今のままではまだ, 自分のPC内のローカルリポジトリにプログラムが保存されているだけで、プロジェクトに参加している人全員が見られるリモートリポジトリにはプログラムがありません。

なので、最後にここまでの作業をリモートリポジトリに記録しましょう。この操作はPush(プッシュ)と呼びます。git pushコマンドで行います。次を入力しEnterを押します。

git push origin master

git pushコマンドは、git push リポジトリ名 ブランチ名の順番で指定します。「origin」はリモートリポジトリを示すために用意された名前です。ブランチについては次回説明させて頂きますので、まずはこのコマンドでリモートリポジトリへPushできることを知っておきましょう。

これでリモートリポジトリに、ローカルリポジトリの変更内容が反映されました。

GitHubでリモートリポジトリの状況を確認してみましょう。ファイルが追加されていることが確認できると思います。

おわりに

今回はここまでとさせていただきます。最後までご覧くださり、ありがとうございました。

スタート編の名のとおり、まずは始められる基本的な情報のみをお伝えしました。実際には、記事中に少し登場したブランチというしくみを用いた利用方法が一般的です。次回はブランチをテーマにGitの本質にもう少し迫っていけたらと思っています。

バージョン管理ツールの利用は、はじめは少し戸惑いもありますが使い慣れればとても便利です。最近ではシステム開発の現場に限らず、大学の研究室や論文作成にも活用されているようです。


合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。

ECFエデュケーション
タイトルとURLをコピーしました