はじめに〜

今回はGit/Githubを最低限の範囲で使えるようになるまでを簡単にまとめてみました。
以下のような方に向けて書きました!

・GitやGitHubを使ったことがない完全初心者
・Gitを理解して使いこなせるようになりたいが長い記事は読みたくないという方

Gitをこれから使う方の参考になればと思います。

gitとは?

プログラミングをしていると間違えて編集してしまったり消したらいけないコードを消してしまったりすることがあると思います。

簡単な手直しなら手作業でやり直せばいいかもしれませんが、ファイルが沢山あり編集箇所がわからなくなる場合には対処のしようがありませんね。

そんなときのために、gitを使えば、ソースコードをバージョンごとに管理できます。
gitを使用することで、以下のようなメリットがあります。

・ファイルのバージョンを管理でき、過去のファイルに戻すことができる
・複数人でのファイルの変更を滞りなく行うことができる

gitは分散型バージョン管理システムのひとつ

分散型とは何なのでしょうか。

調べてみると、以下のように書かれていました。
>分散型(ぶんさんがた)とは、複数のコンピュータなどに分散して機能を持たせること、またはそれで一つの機能を動作させる考え方。集中型の反対の意味として用いられる。
(Wikipedia参照)

噛み砕いて説明すると、
“開発者がそれぞれ作業スペース(リポジトリ)を持っていて、分担して作業ができる形式”のシステムです。

※分散型バージョン管理システムの反対として集中型バージョン管理システム(例:SVN)がありますが、こちらは開発するシステムに対しリポジトリが1つです。集中型のリポジトリは中央リポジトリと呼ばれ、ここからソースコードを持ってきて編集し、編集後中央リポジトリに反映させる形式になります。

分散型について詳しく知りたい場合はこちらからどうぞ↓
[ガチで5分で分かる分散型バージョン管理システム](https://www.atmarkit.co.jp/ait/articles/1307/05/news028.html)
ここまでの説明をまとめるとgitは、以下のようなシステムのことです。

・作業スペースを開発者それぞれが持ち
・ファイルのバージョンを管理することができる

これだけは覚えておこう

ファイルを管理する場所の名前
・作業ディレクトリ
・ステージングエリア(WorkSpaceともいう)
・ローカルリポジトリ
・リモートリポジトリ

ファイルを登録する流れ

①作業ディレクトリからステージングエリアにファイルを追加する

②ステージングエリアからローカルリポジトリにファイルをあげる

③ローカルリポジトリからリモートリポジトリに登録する

以下、語句の説明
・作業ディレクトリ
これは自分がコードを書いているそのファイルがある場所のことです。何にも関与していないただのディレクトリの場所のことです。

・ステージングエリア(WorkSpace)
これはgitを用いて管理するための最初の場所になります。

・ローカルリポジトリ
開発者自身が自分のPCに用意することができる場所のこと。
普段の開発はローカルで行い、その変更を後悔したい場合はリモートリポジトリに登録(push)するという流れになります。

・リモートリポジトリはクラウドサーバーに存在していて、複数人で共有することができる場所のこと。GithubやBitbucketなどのサービスが有名です。

※リポジトリとは
ファイルやディレクトリの状態を記録し、変更履歴を管理することができる場所のこと。わかりやすく言うと、ファイルを入れておく箱のようなもの。

図解すると次のようになっています。

上記の図にあるローカルの作業エリアは下図のような構成になっています。

以上で基礎的に押さえておくべき知識は揃ったかと思います。
この辺りは最初は理解が難しいと思いますが、使っているうちに少しずつ理解が深まっていくので、ここで理解できなくても問題ありません。

それでは実際にコマンドを使ってGitHubへファイルをあげるところまで行なっていきましょう!

コマンドを使いGitHubに登録するまでの流れ

セットアップ

まずは現在作業をしているディレクトリをgitで管理できるようにするためのセットアップを行います。このコマンドは管理したいディレクトリごとに初めの一回だけで大丈夫です。

$ git init

①作業ディレクトリ→ステージングエリア

次は上で述べた”①作業ディレクトリからステージングエリアにファイルをあげる”部分を行います。
ひとつずつファイルをaddしたいときは以下のコマンドを打ちます。

/*ファイルをひとつずつあげたい場合*/
$ git add ファイル名

/*ファイルを一括してあげたい場合*/
$ git add -A
/*"-A"を使うことで作業ツリー内のファイルを全て追加することができます*/

②ステージングエリア→ローカルリポジトリ

ステージングエリアからローカルリポジトリへファイルを上げることを、コミット(commit)と言います。コマンドは以下になります。

$ git commit -m "コミットメッセージ"
/*コミットメッセージはどういった編集内容なのかわかりやすく書いておくと良い*/

addしてステージングエリアにファイルをあげずコミットを行うと、”Changes not staged for commit:”と帰ってくるのできちんとaddしてからコミットを行うようにしましょう。

③ローカルリポジトリ→リモートリポジトリ

今回はリモートリポジトリにGitHubを使います。
※まだGitHubを登録できていない場合は登録から行いましょう。以下の記事を参考に登録をしてから次に進みます。
登録の詳しい内容はこの記事では割愛させていただきます。
[GitHub入門 〜アカウントを作成する方法](https://proengineer.internous.co.jp/content/columnfeature/7103)

使用するコマンドは

$ git push
なのですが、最初にGitHubに上げる際にはこのままではうまくいきません。

ec2-user:~/environment/sample_app (master) $ git push
fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

git remote add

and then push using the remote name

git push
このようになります。リモートのリポジトリがみつかりませんと言われてしまいました。

一番最初にリモートにアップロードする場合はきちんと宛先を指定しましょうね、という話になります。

ではGithub上で作成したリモートリポジトリのURLをコピーしてきて先ほどのコマンドの続きに貼り付けます。

この際、リモートリポジトリの名前をつける必要があるのですが、この名前は一般的に”origin”という名前を使用します。コマンドは以下のようになります。

$ git remote add origin https://github.com/User_name/pictgram.git
※「User_name」部分は各自のGithubの名前が入ります

これでセッティングは終了。これでpushする準備ができたので改めてpushをしましょう。
なお、最初のpushは以下のように指定します。2回目以降は$ git pushのみでpush可能になります。

$ git push -u origin master

これにてGitHubにファイルの登録ができました!

実際にGitHubに登録されているか確認して、作成したリポジトリにコードが反映されていれば終了です。

これでようやくGitHubが使えるようになりました。ですが初回の登録をしただけで、まだまだ開発ができるレベルには到達していないので独自で調べてみながら理解を進めていきましょう!

さいごに

簡単な説明ですがここまで読んで頂きありがとうございました。

修正等ありましたらご指摘ください。

記事作成 : A・M