【Windows】Gitでコードを管理しよう！【初心者】

#Gitを使って自分のコードを管理しよう！
プログラミングをしているとき、<strong>以下のような問題</strong>に直面したことがありますか？

- プログラムを一気に変更して実行したら原因不明のエラーがたくさん出た。エラーが出る前の状態に戻そうとしたがだめだった。
- もしものときのために過去の状態に戻れるようにするために、保存する毎に別ファイルで保存している。
- 複数人で開発をしていたら、各自で同じ場所を変更してしまい、組み合わせるときに矛盾が生じてしまった。

他にもいろいろありますが、以上のことで悩んでいるなら<strong>Git</strong>を利用していきましょう！

#Gitってざっくばらんに言うと！？
今まで培ってきたソースコードの変更履歴を記録して
いつでも見返すことができるシステムのことだよ！

#今回使った環境
今回の記事は以下の環境で行っております！

- Windows8.1
- Github
- SourceTree 1.7.0

#え、Gitじゃないの？　Githubって何……
GithubってGitとどう違うのと思った方もいるかもしれません。
簡単に言うとGithubというのは

<strong>インターネット上でGitを使えるようにしてくれているサービス</strong>

です。

似たようなサービスはたくさんありますが
今回はGitホスティングサービスの中で一番有名なGithubで話を進めていきます。

#導入手順
##１．Githubアカウントを作成する
Githubは、アカウントを作成すると使えるようになります。

<strong>[こちら](https://github.com/)</strong>からアカウントを作成することができます。

ページにアクセスすると

- ユーザー名（Username）
- メールアドレス（Email Address）
- パスワード（Password）…最低1つの数字と7つの英字を混ぜてください

を入力する欄がトップに表示されてると思いますので（されていない場合はSign upボタンを押す）
適宜入力してください。

入力したら<strong>Create an account</strong>をクリックします。

次に、プランを選びます。
プライベートなリポジトリを作成したい場合は、有料プランを選択してください。普通はFreeプランでＯＫです。

参考程度にプラン表をのせておきます（クレカ決済可）

||Free|Micro|Small|Medium|Large|
|:--|:--|:--|:--|:--|:--|
|月額|0ドル|7ドル|12ドル|22ドル|50ドル|
|共同編集者|無制限|無制限|無制限|無制限|無制限|
|公開リポジトリ|無制限|無制限|無制限|無制限|無制限|
|非公開リポジトリ|0|5|10|20|50|

選択したら<strong>Finish sign up</strong>をクリックします。

##２．SourceTreeのインストール
次にSourceTreeをインストールしましょう。
SourceTreeは、Git上で行う操作を簡単にやってくれるGUIです。
本来Gitは真っ黒な画面にコマンドを入力して操作していました。

<strong>[こちら](https://ja.atlassian.com/software/sourcetree/overview/)</strong>からダウンロードできます。

ダウンロードしたら、適宜インストールします。

インストールして起動するとUsernameとPasswordを聞かれるため、Githubで登録したものを入力してください。

これで準備ができました。

#使い方
##１．Github上でリポジトリを作成
<strong>+New repository</strong>ボタンを押すと、リポジトリを作成することができます。

ボタンを押すと、リポジトリの初期設定が要求されます。

<strong>Owner</strong>では、リポジトリを管理するアカウントを設定する。
誰かのリポジトリを参照したい場合は「２．リポジトリをクローンする」まで飛ばしてください。

<strong>Repository name</strong>では、リポジトリの名前を決めます。
分かりやすい名前にすると後から管理が楽になります。

<strong>Description</strong>では、リポジトリの説明を書きます。
このリポジトリはどういうものなのかを書きとめておきましょう。
海外勢も見てるので英語で書くといいかもね！

<strong>Public, Private</strong>では、リポジトリの公開、非公開を設定します。
Publicにすると、リポジトリは誰でも参照可能な状態となります。
Privateにすると、リポジトリはOwnerとコラボレータしか見ることができません。
Freeプランの場合はPublicのみしか選択できません。

<strong>Initialize ... README</strong>では、チェックを入れるとREADME.mdを作成します。.mdとは、Markdown形式のファイルのことです。（Qiitaで投稿するときもこの形式で書かれているよ！）
作成した場合は、Initial commit（最初のコミットだよ）とコメントされ、マスターブランチが作成された状態でリポジトリが作成されます。

設定が完了したら、<strong>Create repository</strong>を押すとリポジトリが作成されます。

これでリポジトリが作成されました。

##２．リポジトリをクローンする
SourceTreeを開き、<strong>新規/クローンを作成する</strong>をクリックします。

クリックすると、
リポジトリをクローン、作業コピーを追加、リポジトリを作成
の3つのタブが出てきます。

<strong>リポジトリをクローン</strong>タブをクリックします。

<strong>元のパス/URL</strong>には、github上のリポジトリ（リモートリポジトリ）のHTTPSの右にあるURLを入力します。
（https://github.com/Username/repositoryname.git）
これは、リモートリポジトリのリンク先を表しています。

<strong>保存先のパス</strong>には、自分のPC上のリポジトリ（ローカルリポジトリ）のパスを設定します。
元のパス/URLを入力したあと、保存先のパスの入力欄をクリックすると自動的に保存先のパスを決めてくれます。
このままでかまいませんが、変えたい場合は適宜指定してください。

<strong>リポジトリをブックマーク</strong>では、リポジトリをSourceTreeのブックマークに登録するか決定します。
ブックマークに入れていたほうが、次回起動したときに呼び出しやすいのでチェックを入れることをおすすめします。
名前は、元のパス/URLを入力していると自動的に決定してくれます。（Repository nameと同じ名前が入力される）
このままでかまいませんが、変えたい場合は適宜変更してください。

そして、<strong>クローン</strong>をクリックすると、ローカル上にリポジトリのクローンが保存されます。

これでローカル上にクローンを作成することができました。

##３．コミット、プッシュしてみる
ローカルリポジトリ内に適当にコードを保存してみましょう。例えばこんなコード。
王道の“Hello World!”です。

```html:index.html
<!DOCTYPE>
<html lang="ja">
	<head>
		<title>index</title>
		<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
	</head>
	<body>
		<p>Hello World!</p>
	</body>
</html>
```

保存してみるとSourceTree上のmasterブランチに変化が…！

<strong>コミットされていない変更があります</strong>

そうなのです。<strong>ローカルリポジトリ内のファイルに変化が起きる</strong>とSourceTreeはそれを検知します！

ここで、<strong>コミット</strong>することでこの変更をローカルリポジトリに保存することができます。

さっそくコミットしてみましょう！　ゲームで例えるならセーブです！

SourceTreeでは、コミットしたいファイルにチェックを入れるとステージにファイルが移動します。
ファイルをステージに入れたら<strong>コミット</strong>ボタンを押しましょう。

押したら<strong>メッセージボックスが出てきたうえに</strong>またコミットボタンが現れました。
なんだこの二度手間は……と思う前にGit上でのルールを述べておきます。

Gitでは、コミット時にコメントの記述を要求されます。
このコメントには、<strong>どのような変更を行ったかを具体的に分かりやすく書いてください。</strong>
抽象的に書きすぎると後で後悔しますし、Gitの特長を帳消しにしてしまいます。

コメントを記述したら新たに出現した<strong>コミット</strong>ボタンをクリックします。

これでコミットができました。

ここで<strong>プッシュ</strong>のボタンを見てください。
赤い四角に数字が書かれたものが表示されてると思います。
これは、プッシュが可能であるという合図です。

コミットした時点では、まだリモートリポジトリに変更が反映されていないのです。
<strong>プッシュ</strong>は、ローカルリポジトリの変化をリモートリポジトリに反映させることです。

さっそくプッシュしてみましょう。
プッシュは、<strong>プッシュ</strong>ボタンをクリックするとできます。
プッシュしようとすると対象のブランチを聞かれますが、今回はそのままOKでいいです。

これでプッシュができました。
githubのページでリポジトリを見てみると変更が反映されてると思います。

あとは<strong>基本的にこれを繰り返す（変更→保存→コミット→プッシュ）だけです。</strong>お疲れさまでした！

#さいごに
Gitの基本的な使い方について説明させていただきました！
Gitを使うことで、コード管理が楽になり開発スピードが一気に進みます。
また、Gitは複数人で使用することを前提に作られていますので、
複数人で開発するときには必須なシステムと言えるでしょう。

複数人で扱うときは、コミットプッシュ以外に使うと便利なコマンドがあります。
また、複数人でGitを使っていると、ある問題も生じてくることがあります。
これら2つに関しては、また別の記事で書いていければなと思っております。

長文となりましたが、最後までお読みいただきありがとうございました！
間違っているところ、文章がおかしいところなどがありましたらご報告してくださると嬉しいです。