Git Hub-チームでのバージョン管理方法-

#この記事のゴール
バージョン管理を行いながら、複数人で一つのプログラムを編集できるようになる！今回は、ローカルでのGitをSourceTree、リモートでのバージョン管理をGithubを用いて行います。
![スクリーンショット 2020-10-18 13.12.47.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/654da9fa-296e-774c-b2c6-64e93681270f.jpeg)

#前提知識
SoruceTreeのインストール
Gitの基礎知識

#クローン
まずは、チームで共有するリポジトリをクローンします。![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f33393365366537362d383932322d323163652d386231632d3433626537306532623762302e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/a5f92476-5ea2-a8db-8914-7a52e1052f57.jpeg)

codeのボタンのcloneの欄からSSHを選択し、URLをコピー。![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f64656335643864622d353065392d643464382d363963622d6138343332623930663566302e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/bfa882cb-e4f9-059e-8f47-5adb38b31e4e.jpeg)


SourceTreeを開き、新規から「URLからクローン」を選びます。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f39643663623865662d323633322d343866352d316164652d6639353431616265303332372e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/635346f1-b504-508e-4c07-64215090319a.jpeg)

先ほどコピーしたURLと保存先を入力します。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f35663639393464322d353564312d393334652d666133312d3136666265373930366635302e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/31a8379b-7e03-3b7a-2b57-717ad93b4c89.jpeg)

これでクローン完成です！


#ローカルでの操作
次に、ローカルでデータの編集を行い、SourceTreeを通してGithubに変更をアップロードします。
### ブランチ
ブランチは、データのバージョンを記録していくためのものです。
ブランチは主に本番反映用、確認用、作業用の３つに分けて管理します。
チームでバージョン管理をする際は、本番反映用は触らず、作業用のブランチで必ず編集するようにします。
詳しくは以下の説明がわかりやすいです↓
サル先生のGit入門「ブランチとは」
https://backlog.com/ja/git-tutorial/stepup/01/

![スクリーンショット 2020-10-23 11.49.11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/1a6725e6-4f5b-50bf-7041-770e9de8069f.jpeg)

今回は
本番反映用のブランチ：master
確認用のブランチ：review
作業用のブランチ：yasai1({作業者の名前}＋{更新回数})
という名前をつけて行います。
![スクリーンショット 2020-10-23 11.52.16.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/93681fa8-7acc-a27b-48cd-0a338c137bc0.jpeg)



reviewに移動します。（ブランチ名が太字かつ◯がついているところが現在いるブランチです）
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f37656566366166362d636634652d663462372d363530352d3863323233356537303365322e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/1c3b91e5-9650-3ded-5f34-3ece39dc8be3.jpeg)


reviewにいることを確認してから、上部メニューのブランチをクリックし、新規ブランチを作成します。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f65656333613836352d663938362d316434362d653234312d3634643530303564623133382e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/6feb25e4-173d-270a-92a7-484843390793.jpeg)


新たに「yasai１」というブランチが作成されました。![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f31363033326334382d656661352d666130642d633130362d3864376333616333313662372e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/a4002e44-48c8-4eb7-6757-1ef565423fa1.jpeg)


エディターで、該当のフォルダを開き編集します。

### プッシュ
エディターで編集し、SourceTreeに戻ると、上部メニューのコミットの部分に「+１」となっています。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f38616432623236392d616466632d306266312d373032342d3365333637316236393335632e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/8d36f7bd-5ad5-2c38-9793-95af2d3451ef.jpeg)


コミットを押すと変更した部分が表示されます。画面右の欄の赤い部分が変更前、緑部分が変更後になります。画面左下の「ステージングに未登録のファイル」というのが、現在変更したファイルなので、変更をコミットしたいファイルのみチェックを入れます。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f39636662373532332d343465642d666238362d336237612d6262336433356437646135322e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/f0053e43-6f3b-9dd5-2319-b4d979d29b0e.jpeg)


#### ※リセット
ファイルの編集した内容を破棄したい場合は、リセットすることもできます。![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f35613461646233662d666632632d376534632d326634332d6634363234616161626230332e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/898e4d51-3fc5-2874-8da3-fd02a85f6507.jpeg)



ファイルにチェックを入れると、ステージリング済みのファイルに分類されます。画面下部にコミットメッセージをいれ、コミットします。これで、SourceTreeに変更内容を共有しました。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f32326335393935342d316437342d386162312d376231372d3737613330663031633533342e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/d3924ce0-122a-4e24-5828-2a27341b70eb.jpeg)


この変更内容を、GitHubにプッシュします。上部メニューの「プッシュ」を選択し、プッシュするブランチのチェックを入れます。（編集した「yasai1」のブランチのみ選択します）
![スクリーンショット 2020-10-18 11.47.34.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/047186c8-f046-c2be-91fd-a754789c1b85.jpeg)

これでGitHubに変更内容を送りました！

#GitHubでの操作
### プルリクエスト
GitHubを開くとプルリクエストが来ていることが確認できます。プルリクエストは、ブランチの変更の反映を、リクエストする作業です。![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f38326462376634302d326365372d646337362d353664362d6335666137663037353337622e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/a6f40dcb-4901-a0ac-0bca-9e7746abf5f3.jpeg)


プルリクエストを開きます。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f30306439663937392d393063392d313331372d343132302d3134623666363530303633622e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/d62f2f9e-5a07-de44-c856-e2738a570a26.jpeg)

ここで要注意！「base:〜」が変更したファイルの反映先、「compare:〜」が変更したファイル。初期設定だとbaseがマスターになっているので、ブランチである、reviewに変更します。（マスターは最後の砦なので、絶対にいじらない！！！）
![スクリーンショット 2020-10-18 11.53.36.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/660b2627-7fa0-72a8-5241-9d3de7d2ecb9.jpeg)
メッセージを残し、「create pull request」を押します。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f66656639396537382d346136662d323839302d363536612d3563323038663235643766322e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/27108985-0323-fb85-a2f4-e40028169d74.jpeg)


他のメンバーにも変更したことを共有し、変更内容を確認してもらいます。

###マージ
他のメンバーに確認してもらった後、自分または他のメンバーがプルリクエストのマージを行います。変更をreviewブランチに反映させるステップです。下部の「Merge pull request」を押します。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f65393636353039342d363634372d613537322d623331622d6639326437656461356131662e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/4d35784a-ae54-35d2-01e1-b953c6adc8f2.jpeg)


confirm mergeを押して、マージ完了です！
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f66646464343230392d326233392d336535642d656137342d6661393136376661393234632e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/4863dd12-7185-9085-497d-9152a0b94448.jpeg)


最後に自分の作った最下部ブランチのyasai1を消します。![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f65316332396638302d643462372d383138352d643761662d6664666531653832363439392e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/fd093320-14c9-ea21-f9f1-6f3ae98e48ce.jpeg)


###マスターに反映
本番環境である、マスターへの反映は、チームの責任者が行います。チームで行う場合は、自分がリクエストしたものは、他の人でないとマスターへの反映ができません！
今回は初心者向けなので、ここの手順は割愛します。

#ローカルでのブランチの削除
最後に、SourceTreeに戻り、SourceTreeでも自分が作成した　「yasai1」ブランチを削除します。まず、削除したいブランチ以外のブランチに移動します。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f35383535383037642d653466312d623430392d646463362d3565393064653637346165332e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/86cd9d93-b075-cf46-7a7a-290f0400afd1.jpeg)

削除したいブランチを右クリックし削除を選択
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f35656235336164322d653831652d386461662d363337622d6565363263336666336531342e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/a5bb4b78-d4c6-505d-01eb-af7f6d1390ca.jpeg)


リモートブランチも一緒に削除します。
![スクリーンショット 2020-10-18 12.42.02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/2d43ab1e-4e09-c378-5dbd-5316a2d35b94.jpeg)

これで、GitHubへの一連の流れは終了です！！！
お疲れ様でした。


### ２回目以降の注意点
２回目以降は、自分のローカルのSourceTreeを最新の状態にしてから、ブランチをつくるようにします。reviewブランチに移動し、プルに数字がついていたら、クリックして、リモートでの変更を反映させます。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3636333833342f66393437633233662d323330642d323165322d333033662d3937323763633036643465352e6a706567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663834/fa81fd4a-ed16-e4a2-e863-e63f1d16b44d.jpeg)