Cloud9ワークスペースをGitHubでバージョン管理しよう

AWS Cloud9のワークスペースだってただのLinux環境(Amazon Linux)です。作業に入る前にバージョン管理の設定を行います。

準備

Cloud9にワークスペースを作っておきます。中にすでに何かのプロジェクトがあっても構いません。 またGitHubアカウントを作成しておいてください。

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

Gitを使ってバージョン管理をはじめるためにローカルリポジトリの作成と初期化を行います。ローカルとは言うものの当然PC上ではなくワークスペース内のお話です。

cdcd ~などで左側のツリー上で最も上に表示されているフォルダ(ルートディレクトリ)に移動します。移動できるならどのコマンドでもOKです。

git init

作成できたら(master)と表示されます。「いまgit上ではmasterという名前のブランチにいますよ」という意味です。

リポジトリ

リポジトリ(レポジトリ Repository)とは、ファイルやディレクトリの状態を記録する場所です。後述するコマンドでファイルの内容やフォルダ構成、変更された箇所などが自動的に保存されます。保存されたこれらの情報は履歴として残り、あとから確認することができます。

ブランチ

Gitは履歴を枝分かれさせて記録することができます。例えば複数人で開発をしている際、追加している機能ごとにバージョン管理できたら便利だとおもいませんか?ブランチを切っていればそれが可能です。 身構えてしまいますが実は既にブランチを作っていますmasterというブランチです。Gitのリポジトリを作成すると自動で作られます。プロジェクトの中で最も安定したバージョン、主たるバージョンの役割が与えられることが多いです。

コミット対象になるファイルを確認

ルートディレクトリの中でGit管理対象になるファイルを確認します。

git status

すると下記のように表示されるかと思います、

On branch master

No commits yet

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

        README.md
        ……

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

すでに他のプロジェクトが入っているワークスペースは「Untracked files:」のあとにズラッとファイル名が並ぶはずです。

ローカルリポジトリにファイルを追加

git add .

addコマンドのあとに「.」を指定するとルートディレクトリ以下のフォルダ・ファイル全て、つまりワークスペース上のファイル全てがGit管理下におかれます。 (実はアスタリスク(*)でも行けます、慣例的にこっちを使ってます。)

git add README.md

ファイル名を指定することで特定のファイルのみをGit管理下におくことも可能です。

ローカルリポジトリをコミットする

ここでgit statusでローカルリポジトリの状況を確認すると

No commits yet

(中略)
   new file:   README.md

となっているかと思います。 まだコミットされていませんよ、と言われているのでローカルリポジトリに正式にファイルを登録します。

git commit -m "はじめてのコミット"

git commitだけでもコミットできるのですが、あとでコミット履歴を見返した時に一行一行履歴を開いてコードを一つ一つ見ないと何を修正したのかわからなくなります。それを避けるため-mオプションと続けてコメント内容を書くことでわかりやすくしています。

コミットが成功したところでgit statusで確認してみると

nothing to commit, working tree clean

ローカルリポジトリの中にコミット対象のファイルはない……先ほどのコミット以後変更されたファイルはありませんよと教えてもらえます。

GitHubリポジトリを作成

Cloud9ワークスペースのファイル管理からは一旦離れて、GitHubアカウント上にリポジトリを作ります。

Webブラウザに移動してGitHubアカウントにアクセスします。 右上の+ボタンを押して「New repository」を選びます。

必須項目はRepository nameのみです。 必要であればリポジトリを公開するか(Public)非公開にするか(Private)を選択して、Create Repositoryを押します。

GitHubの無料アカウントではプライベートリポジトリが無制限に作れるように、またプライベートリポジトリのアクセス人数も無制限になりましたので、用途に合わせて好きな方を選択してください。

リポジトリを作成すると[HTTPS | SSH]トグルボタンの右にURLが表示されています。このURLはCloud9で必要ですので右端のコピーボタンを押してクリップボードにコピーしておきます。もちろん、あとから該当リポジトリページにアクセスして確認することもできます。

ローカルリポジトリにリモートリポジトリを登録

ローカルリポジトリはCloud9側で作ったリポジトリ、リモートリポジトリはGitHubアカウント上に作ったリポジトリです。

ローカルリポジトリにおいて、リモートリポジトリを「origin」という名前で登録します。

git remote add origin 先ほどのURL

「先ほどのURL」と書いてある箇所にGitHubでコピーしたURLを貼り付けます。

(originは慣例です。好きな名前を付けていいですが、多くのGit解説本や記事にはoriginで書いてあると思います。最初のうちはわけがわからなくなるのでoriginを採用しましょう。)

ローカルリポジトリからリモートリポジトリへソースをプッシュ

カタカナばっかじゃん、ルー大柴かよ。 いよいよローカルリポジトリでコミットしたファイルをリモートリポジトリへアップロードします。

git push アップロード先のリモートリポジトリ名 ローカルブランチ名

例えばこんな感じで。

git push origin master

Gitは上流リポジトリ(この場合GitHub上のリモートリポジトリ)のうち指定がなければ同名のブランチにプッシュするようです。 もし同名ブランチがなければ勝手にリモートリポジトリに作成されます。

pushコマンドにリモートブランチを指定するオプションをつけることもできます。

git push リモートリポジトリ名 ローカルブランチ名:リモートブランチ名

Cloud9でワークスペースを作って実験するだけならあまり出番はないのかなと思います。


Angularの勉強をされる方はCloud9上にAngular環境を構築する方法を載せているのでぜひご覧ください😊