3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【GitHub】アプリのバージョン管理を行う

Last updated at Posted at 2018-05-22

バージョン管理とは

バージョン管理とはファイルの変更履歴の管理のことだ。

特に複数人でアプリケーション開発をする場合、機能ごとに作業を分割して、それを各個人が進めていくことになるだろう。そして最終的に各作業をつなぎ合わせて1つのアプリケーションになるのだが、バージョン管理はこの過程に不可欠な仕組みだ。

ファイルの変更履歴=作業履歴の単位が、どこでどのようにアプリケーションに組み込まれていくのか、時系列で確認できれば便利だ。さらに作業に誤りがあった場合、遡って該当箇所を取り消すこともできる。

それを提供するのがバージョン管理システムであり、自分はその中の1つであるGitを利用している。

作業環境

今回の作業は、以下の環境を前提として行っている。

  • gitがインストールされている。(自分はHomebrewで管理している。)
  • GitHubに登録済みである。
  • GitHubはssh接続されている。

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

まず、自分のPC内でファイルの変更履歴の保管場所を作成しなければならない。その場所をローカルリポジトリと言う。

initコマンド

最初にアプリケーションのディレクトリへ移動する。

$ cd larabbs

initコマンドでアプリケーション内に.gitというローカルリポジトリ用のディレクトリが作成され、初期化される。空の箱を作るイメージだ。このコマンドは一度実行してしまえば、再度行う必要はない。

$ git init
Initialized empty Git repository in /Users/[ユーザー名]/workspace/larabbs/.git/

addコマンド

次に、addコマンドでローカルリポジトリに変更履歴を保存したいファイルを指定する。なお、Aオプションを指定すると、現在のディレクトリ以下全てのファイルがその対象となる。

$ git add -A

commitコマンド

最後に、commitコマンドでaddコマンド実行時に指定したファイルの変更履歴がローカルリポジトリに登録される。mオプションの後ろには、メッセージを登録する必要がある。

今後、commitコマンドを行うごとに差分(以前のcommitからの変更履歴)が登録される。

$ git commit -m "first commit"
[master (root-commit) 8b94e0d] first commit
 98 files changed, 7539 insertions(+)
 create mode 100644 .env.example
 create mode 100644 .gitattributes
 create mode 100644 .gitignore
 create mode 100644 app/Article.php

# 以下省略

statusコマンド

statusコマンドで、現在のcommitの状況が確認できる。全てのファイルがcommitされていれば、以下のメッセージが表示される。

$ git status
On branch master
nothing to commit, working tree clean

リモートリポジトリの作成・登録

自分は、GitHubという超メジャーなサービスを利用している。ここにリポジトリ(リモートリポジトリ)を作成することにより、他人とアプリケーションの構成に必要な情報を共有することができる。

リモートリポジトリの作成

New repositoryで新しいリモートリポジトリを作成する。以下の項目を入力・選択すれば問題ない。

  • Repository nameにアプリ名を入力する。
  • Publicを選択する。
  • Initialize this repository with a READMEはチェックしない。

公開方法は無料枠のPublicなので、自分のコードは誰でも見られる状態になることは了承しておく。

さらに、環境変数など他人に見られては困るファイルがあれば、あらかじめ.gitignoreを作成し、その中に該当のファイル名を記述しておくこと。(Laravelはデフォルトで作成されていた。)そうすれば、リモートリポジトリに該当ファイルの履歴(内容)が送られることはない。

リモートリポジトリのアドレス登録

作成したリモートリポジトリに移動し、先ほどローカルリポジトリにcommitした内容をリモートリポジトリへ送る(pushする)準備をする。

送付先であるリモートリポジトリのアドレスは、Clone or downloadで確認が可能だ。自分の場合はGitHubとssh接続しているため、gitから始まるアドレスを指定する。

まず、remote addコマンドで送付先のアドレスを登録する。以降のコマンド入力も、全てアプリケーションのディレクトリで行う。

$ cd larabbs
$ git remote add origin git@github.com:[ユーザー名]/larabbs.git

上記のコマンドで、originの名前で送付先アドレスであるgit@github.com:[ユーザー名]/larabbs.gitが登録された。

これで、pushする度にアドレスを入力する手間が省ける。

pushコマンド

pushコマンドで、ローカルリポジトリのcommit内容をリモートリポジトリへ送る。

$ git push origin master
Counting objects: 132, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (115/115), done.
Writing objects: 100% (132/132), 173.17 KiB | 1.53 MiB/s, done.
Total 132 (delta 17), reused 0 (delta 0)
remote: Resolving deltas: 100% (17/17), done.
To github.com:[ユーザー名]/larabbs.git
 * [new branch]      master -> master

これで、GitHubの該当リポジトリを選択すると変更履歴(ファイル内容)が表示されるはずだ。

参考記事

今回お世話になった記事・サイト様を紹介する。

とにかく簡潔で分かりやすい。
【Git】オレならこう説明する!Git初心者への用語説明

こちらは詳しく図解されている。SourceTreeというソフトが利用されているので、作業過程が視覚的に理解しやすい。
【連載Git入門目次】ほんとは簡単?SourceTreeでGitを始めよう!
サルでもわかるGit入門〜バージョン管理を使いこなそう〜

今回はここまで。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?