【初心者用】GitHubについて。ブランチの作り方からプルリクエストの仕方まで

参考にしたページです
https://guides.github.com/activities/hello-world/

#ここで学べること

>>1.リポジトリの作り方と使い方
>>2.新しいbranchの始め方と扱い方
>>3.ファイルの変更の仕方とGitHubへコミットする方法
>>4.プルリクエストの開き方と結合の仕方


## Whatis GitHub?

GitHubはヴァージョンコントロールと協力のためのコードホスティングプラットホームである。これによりどこにいても仲間とのプロジェクトでの協業が可能となる。

本記事では、GitHubの基本事項である、リポジトリ、ブランチ、コミット、そしてプルリクエストについて学ぶ。自分自身のHello World リポジトリを作成し、GitHubのプルリクエストの流れについて学ぶ。それはコードを作成・見直す人気の方法である。

###No coding necessary

本記事を完了するためには、GitHub.comのアカウント(http://github.com/) とインターネットアクセスが必要である。コードの仕方やコマンドラインの使い方やGit(GitHubの土台となるヴァージョン制御ソフトウェア)のインストールの仕方は知っている必要はない。

## Step1. Create a Repository

**リポジトリ**とは大抵単一のプロジェクトをオーガナイズするために用いられる。リポジトリはフォルダーやファイル、画像、ビデオ、スプレッドシートやデータセットなどプロジェクトに必要な全てのコンテンツを含むことができる。プロジェクトには*README*というプロジェクトに関する情報を含むファイルを含むことを推奨している。GitHubでは新しいリポジトリを作るとき、同時にREADMEを加えることを容易にしている。*license file*などの他の共通なオプションについても提供している。

あなたの`hello-world`リポジトリはアイデアや資源やその他の他人とシェアしたり議論できる場所に置かれる。

### To create a new repository

1.右上の角の自分のアバターの隣の+ボタンを押し、**New repository**を選択する。

![スクリーンショット 2019-10-12 14.57.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278640/1a6878a7-d993-0704-f625-16a2911971fb.png)

2.リポジトリに`hello-world`と名前をつける
3.短い説明(description)を書く
4.**Initialize this repository with a README**を選択する。

![スクリーンショット 2019-10-12 14.59.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278640/53ed7cc6-6792-6235-0fb5-9c35bb68f94f.png)

そして**Create repository**ボタンを選択する。


## Step.2 Create a Branch

**Branching**とは一度にリポジトリの異なるヴァージョンの上で作業をする方法である。

デフォルトでは、リポジトリは`master`と呼ばれる単一のブランチを持っている。私たちは`master`にそれらをコミットする前にブランチを使い実験をしたりエディトしたりする。

`master`ブランチから、枝葉のブランチを作った時、その時の`masterP¥`のコピーやスナップショットを作ることになる。もしあなたがあなたのブランチで作業をしているときに、誰か他の人が`master`ブランチに変更を加えた場合、あなたはそれらのアップデートを受け取ることが可能である。

このダイアグラムが示しているのは

・`master`ブランチ
・`feature`と呼ばれる新しいブランチ(なぜならあなたは'feature work'をこのブランチで行なっているから)
・`feature`が`master`に合併する前の旅程

![スクリーンショット 2019-10-12 15.16.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278640/5ea602b3-7445-392b-3d89-5e469a7f3cf0.png)


以下のような異なるヴァージョンのファイルを保存していますか？

・`story.txt`
・`story-joe-edit.txt`
・`story-joe-edit-reviewed.txt`

ブランチはGitHubリポジトリの中で似た目標を完遂させます。

ここGitHubでは、我々の開発者、ライターそしてデザイナーがブランチを用いてバグを修正し続け、feature workを@master`(production)ブランチから分けています。変化の準備ができた時、彼らのブランチは`master`へと合流させます。


###To create a new branch

1.あなたの新しいリポジトリである`hello-world` へ行く
2.**branch: master**と書いてあるファイルリストの頂上のドロップダウンをクリックする
3.ブランチの名前をタイピングし、`readme-edits`を新しいブランチのテキストボックスに入れる
4.青い**Create branch**boxはEnterキーを押す。


<img width="1005" alt="スクリーンショット 2019-10-12 16.48.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278640/da57f658-b41f-160c-42c2-20528198d355.png">


そして今あなたは`master`と`readme-edits`の二つのブランチを持っている。それらは全く同じに見えるがそれはそんなに長くは続かない。次に新しい変更を新しいブランチに加えてみる。


##Step3. Make and commit changes

今`readme-edits`ブランチでコードを見ていると思います。これは`master`のコピーです。いくつかのエディトをしてみましょう。

GitHub上では、保存された変更は*コミット*と呼ばれます。それぞれのコミットは関連づけられた*commit message*がついています。それはその変更がそうして行われたかについての説明文が書かれています。コミットメッセージはあなたの変更の歴史を捉え、他のcontributorsが、あなたが何をどうしてしたのかがわかるようになっています。

###Make and commit changes

1.`README.md`ファイルをクリックする。
2.ファイルビューの右上の角にある鉛筆のアイコンをクリックする。
3.エディターの中であなた自身について少し書く
4.あなたの変更点を記述するコミットメッセージを書く。
5.**Commit changes**ボタンを押す。

![スクリーンショット 2019-10-12 17.03.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278640/79f9033e-6558-f879-0ae9-c33c7784794d.png)


これらの変更は`readme-edits`ブランチのREADMEファイルに作られました。なのでこのブランチは`master`とは違うコンテンツを含んでいます。つまり。`readme-edits`ブランチで行われた変更はまだ`master`ブランチには反映されていません。


## Step 4. Open a Pull Request

Step3までで、エディトができるようになりました。さて`master`のブランチに変更を加えるためには、プルリクエストを開く必要があります。

プルリクエスト(Pull Request)はGitHubの共同の心臓部分です。あなたが*pull request*を開くときは、あなたはあなたの変更を提案し、誰かのレビューをリクエストし、あなたの貢献を持ってきて、彼らのブランチに加えるということです。プルリクエストは*diffs*つまりそれぞれのブランチのコンテンツの違い(differences)を表します。この変更、加筆、削減事項は緑と赤で示されます。

コミットをしたらすぐに、プルリクエストを開き議論を始めることができます。コードがまだ終了していなくても構いません。

GitHubのメンションシステム(https://help.github.com/articles/about-writing-and-formatting-on-github/#text-formatting-toolbar)をプルリクエストメッセージの中で用いることで、特定の人やチームのメンバーからのフィードバックを仰ぐことができます。それはもし彼らが下の階にいたり、10時間の時差のある場所にいても可能です。


あなたはプルリクエストをああ他自身のリポジトリで開いて、それらをあなた自身で結合させることも可能です。これは大きなプロジェクトで仕事をする前にGitHubの流れを学ぶのに非常に良い方法です。


###Open a Pull Request for changes to the README

STEP
1. **Pull Request**タブを押して、プルリクエストページから緑色の**New pull request**ボタンを押す。

![uploading-0]()

2.**Example Comparisons**ボックスの中から、あなたが作ったブランチ`readme-edits`を選択し`master`と比べる。

3.比較ページの中の変更事項をみて、それが本当に変更したいものかを確認する。

4.変更したい事項の確認が取れたないい、緑の大きな**Create Pull Request**ボタンを押す。

5.あなたのプルリクエストのタイトルを与えて、変更に関する短い文章を書く。


## Step.5 Merge your Pull Request

最終ステップでは、`readme-edits`ブランチを`master`ブランチに合併させて一つにする。

1.緑の**Merge pull request**ボタンをクリックし、変更を`master`に加える。
2.`Confirm merge`ボタンを押す。
3.先に進んで、紫色の箱の中にある**Delete branch**ボタンを押して、ブランチを消す。(変更はもう適応されているので）

##Celebrate!

本記事を完了したことによって、GitHub上でのプロジェクトの作り方と、プルリクエストの仕方を学びました。

本記事で達成したこと

・オープンソースのリポジトリを作成した
・新しいブランチを始め、扱った
・ファイルを変更し、それらの変更をGitHubにコミットした
・プルリクエストを開き、マージした

あなたのGitHubアカウントを見ると新しい貢献の四角い印がついていることがわかる。(https://help.github.com/articles/viewing-contributions)

よりプルリクエストの力を知りたいときは、GitHub flow Guide(http://guides.github.com/overviews/flow/)を見ることをお勧めします。
また、GitHub Expiore(http://github.com/explore）に参加することで、オープンソースプロジェクトに加わることができます。