テスト

よしデブ Blog

プログラミング、Web、IoTの話を発信。

【チュートリアル付き】gitに初挑戦してみようぜ!〜①初めてのgit initからcommitまで〜

はじめに

こんにちは、よしデブです。

今回のテーマは git です。

今やエンジニアの必須ツールとなっています。

gitの基本操作及びgitを利用したwebサービスGitHubについて3段階構成で紹介したいと思います!!

  1. 初めてのgit initからfirst commitまで
  2. 初めてのbranch作成からmergeまで
  3. 初めてのGitHub

今日は第一回ということで gitプロジェクトを作成してコミットによるファイル管理 を体験していただきたいと思います。git初めての方はもちろん、便利なオプションも紹介したいと思うので、経験者にも参考になれば幸いです。

gitとは?

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. git公式サイト

gitとはオープンソースの分散バージョン管理システムです。

会社・大学のレポートや卒業論文の提出期限が迫ってきたとき、皆さんのフォルダの中身がこんなことになっているはずです。

どれが、本当の最終盤なのかわかりませんよね笑

これがプログラムコードの場合、もっと悲惨なことになります。

例えば、最初は動いていたプログラムを変更してしまって動かなくなった時、元に戻したい!!と思ったことありませんか?

そんなとき、gitを使いこなすことができたら簡単にファイルを管理することができるのです! 以降に、gitを基本的な使い方についてチュートリアル付きで説明していきます。

チュートリアル:gitの基本操作

動作環境

  • macOS 10.14.5(Mojave)
  • git v.2.21.0
  • Python v.3.5.7(Python3系ならどれでもOKです)

gitはMacにデフォルトでインストールされているので大丈夫だと思いますが、Pythonはインストールしている前提で進めます。

Pythonのインストール方法はまた別記事で紹介させていただきます。

前準備

$ mkdir ~/python-git
$ cd ~/python-git
$ touch calc.py
今回はホームディレクトリにpython-gitディレクトリを作成し、python-gitディレクトリにcalc.pyファイルを作成します。

calc.pyの内容は以下のようにしてください。

# coding: utf-8  
def add(a, b):
  return a + b  
if __name__ == '__main__': a = 6 b = 2 print('add: {0}+{1}={2}'.format(a, b, add(a, b)))

calc.pyの動作を確認します。

$ python calc.py
add: 6+2=8

確認ができたら、次にgit configコマンドで自分の情報を登録します。 (user.nameはダブルクォーテーションで囲ってください)名前はフルネーム、emailは自分が使っているメールアドレスを指定します。開発用のメールアドレスを作るのがオススメです。

$ git config --global user.name "Yoshi Dev"
$ git config --global user.email hgoehoge@hogehoge.com

これでgitを使う準備は整いました。

gitプロジェクト作成(git init)

python-gitディレクトリをgitプロジェクトにするコマンドがgit initコマンドです。pwdコマンドで現在がpython-gitディレクトリ直下にいることを確認してからgit initコマンドを実行してください。 ls -aコマンドで隠しファイルを含めて.gitという隠しファイルが生成されていれば成功しています。

$ pwd
/Users/{アカウント名}/python-git
$ git init
$ ls -a
.  ..  .git  calc.py

ファイルの変更を記録(git addとgit commit)

gitの初期設定は終了しました。次に最初のコミットを行います。コミットとはざっくり言うと ファイルの作成・変更・削除を記録する作業 のことを指します。 以下のコマンドを実行してください。

$ git add calc.py
$ git commit -m "first commit"

git addコマンドは変更を記録したいファイルを指定します。このことをステージングと言います。 ステージングされたファイルの変更を確定するコマンドがgit commitコマンドです。コミットにはコミットメッセージでどのような変更をしたかを記述する必要があります。

-mオプションをつけるとコミットメッセージを簡単につけることができます。-mオプションをつけないとターミナルテキストエディタvim、nano、emacsなど)が開いてコミットメッセージを書きます。慣れない方は-mオプションをつけてメッセージをつけてください。

コミットログの確認(git log)

さて、最初のコミットが終わりました。きちんとコミットができているか確認してみましょう。コミットの履歴を確認するコマンドはgit logコマンドです。

$ git log
commit e2d0e2a8ba6807569cfe61b90045e300dd560c04 (HEAD -> master)
Author: Yoshi Dev <hogehoge@hogehoge.com>
Date:   Sat Jun 22 13:45:55 2019 +0900
first commit
$ git log --oneline e2d0e2a (HEAD -> master) first commit

git logコマンドを実行すると、コミットID(コミットハッシュ値)、コミット作成者、日付、コミットメッセージを確認することができます。

簡易的にログを確認したい場合は--onelineオプションをつけます。するとコミットIDの最初の7文字、コミットメッセージを確認することができます。

直前のコミットメッセージの変更(git commit --amend)

コミットメッセージを間違えた!!という経験をした方も多いと思います。実際に私もよく間違えます...

そんな時はgit commit--amendオプションをつけて直前のコミットメッセージを変更できます。

$ git commit --amend -m "初めてのfirst commit"
$ git log --oneline
b5883d7 (HEAD -> master) 初めてのfirst commit

ファイルの変更内容を確認(git status)

続いて、calc.pyに引き算をするメソッドを追加して内容を変更してみましょう。calc.pyの内容を以下のようにしてください(コメントは無くてもOKです)。 変更点を以下に挙げます。

  • 引き算するメソッド(sub)を追加
  • a、bの値を変更
  • 引き算の結果を出力

# coding: utf-8  
def add(a, b):
  return a + b
# 引き算するメソッドを追加 def sub(a, b): return a - b
if __name__ == '__main__': # aを12に変更、bを8に変更 a = 12 b = 8 print('add: {0}+{1}={2}'.format(a, b, add(a, b))) # 引き算を実行 print('sub: {0}-{1}={2}'.format(a, b, sub(a, b)))

calc.pyを実行して動作を確認します。

$ python calc.py
add: 12+8=20
sub: 12-8=4

ここで、ファイルの状態がどのようになっているか確認するgit statusコマンドを実行してみます。

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
modified: calc.py(赤色で表示)
no changes added to commit (use "git add" and/or "git commit -a")

注目すべきはmodified: calc.pyとなっていることです。modifiedはファイル内容が変更されていることを表しています。また赤色で表示されているのはファイル変更記録対象に未だ指定されていない(ステージングされていない)状態を表しています。 次にgit addコマンドで変更を記録したいファイルをステージングしましょう。

$ git add calc.py
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
modified: calc.py(緑色で表示)
no changes added to commit (use "git add" and/or "git commit -a")
calc.pyが緑色に変わったことを確認できるかと思います。これはファイル変更記録対象に指定された(ステージングされた)状態を表しています。 最後にgit commitコマンドで変更を確定します。
$ git commit -m "a,bの値変更、subメソッドを追加"
$ git log --oneline
8d34df8 (HEAD -> master) a,bの値変更、subメソッドを追加
b5883d7 初めてのfirst commit

このようにgitを使ったファイル管理では プログラムの機能を追加したり、内容を変更する度にコミットを行ってファイルの変更履歴を記録していきます。

基本的にはgit addでステージングしてgit commitで変更を記録するという操作を繰り返しです。

「なんだ、意外と簡単だ。」と思っていただけたでしょうか? 公式のgitホームページ でも操作方法のドキュメントがあるので参考にしてみてください。

さぁ、これであなたもgit経験者の一員です。

おわりに

今回はgit操作のチュートリアル第一弾として、gitの基本操作であるgit addgit commitについて説明しました。 また、gitの状態を確認するgit status、コミット履歴を確認するgit log、使えるオプションについて紹介しました。

次回はブランチを新たに作成して、ファイルの分散管理を体験していただきたいと思います。

ではでは。

ご指摘、ご意見などがあれば、コメントお願いします。またTwitterのDMにでもご連絡いただけたらと思います。よしデブ(@yoshidev523)| Twitter