Azure DevOps Repos(リポ) を使ってみる

Reposは、みなさんの生産物と履歴を管理するリポジトリサービスです。
ここで扱うのはGitリポジトリとなります。

超概要につきましてはこちら[Azure DevOps Repos(リポ)の超概要＆Gitについて簡単に説明](https://qiita.com/mstakaha1113/items/8c6a845c9155b0dcdc5e)をご覧ください。

今回は、上記記事内でも触れました
![20190708-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/96cb0522-e80f-e62e-ea5a-ad488463124d.png)
この案件Aだけやってみます。
登録するものは何でも良いので、今回はReadMeファイルを作成します。
クライアントもコマンドラインとメモ帳で過ごしたいと思います。

# Reposを初期設定する
始めて使うReposには、まだ何も登録されていません。このような画面が出力されると思います。
![20190714-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/29e246bc-27a2-d795-4ec6-e4425a50e3d7.png)

## Clone to your computer
開発が始まったら最も頻繁に利用するのがこの形式だと思います。
自身のPCにクローン（コピー）してくるコマンドです。
またVisual Studio のようなIDEを直接指定することも可能となっています。

## or push an existing repository from command line
どこかにある既存のリポジトリをPushするときの利用方法です。

## or import a repository
たとえばGithubで管理しているリポジトリのURLを指定して、直接インポートすることができます。

## or initialize with a README or gitignore
ReadMeやgitignoreファイルを付与した初期状態のリポジトリを作成することができます。
今回は、こちらを使ってReadMeファイルを作成して改修するという案件を実施したいと思います。
"Initialize"ボタンを押下した結果がこちらです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/0241a198-1a03-3d93-362f-c36f016ab75c.png)
画面上部のパンくず（ピンク）にて、参照するリポジトリそのものを選択できます。
左上（緑）でブランチを選択できます。
"Files"の画面は基本的にExplorer風になっていることがわかるかと思います。

# 案件Aに対応する
案件Aに対応します。何かの作業を実施する際、本番環境に影響を出さないためのルールを作ります。今回は、masterブランチに登録されたものは即本番環境に反映されるという想定で、masterブランチへの直接的な登録は実施しないものとします。
## ブランチの作成
左上のブランチ選択リストボックスをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/4571db45-e7c3-3d78-e6ea-035f46524815.png)
"＋New branch"をクリックしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/be970cd7-a999-d244-bd41-9713f6f853c4.png)
ブランチ名、ブランチの元、該当Work item(任意)を選択して"Create branch"をクリックしましょう。
今回はブランチ名を"案件A用ブランチ"、ブランチの元を"master"、Work Itemの指定は無しとしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/46a846cb-680c-56a3-63e0-f35d1ee4d921.png)
表示されているブランチ名が"master"から"案件A用ブランチ"に変更されていることが確認できます。
このブランチを修正する分には、本番環境（すなわちmasterブランチ）には何の影響も与えません。
## ブランチのClone
自身のPCで作業を実施するため、Cloneを行います。
画面右上の"Clone"ボタンをクリックしてください。
![20190714-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/4cda8a49-a994-31c5-d205-2a0f7ca5e368.png)
今回はHTTPSのアドレスをコピーして、PC側からコマンドベースでクローンしたいと思います。
![20190714-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/b46f7a7c-1d77-826b-c0d7-c19bf696e7a3.png)


（スクショ割愛）こののち、PC内に落ちてきたファイルを修正します。

## Add,Commit,Push
修正内容をGitに登録します。最初に変更したファイルをローカルリポジトリにAdd(本当はいらん)、修正点にコメントを付与してコミット、そのリポジトリをReposにPushしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/1471c0ca-becd-91e7-b2f8-f99833380b10.png)
きちんとGitのことが知りたい方はGitに関する記事を探して読んでください。

## Reposに登録されていることを確認する
Azure DevOpsのReposに戻ると、コメント付きで登録された状態を確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/f5c55cb3-648c-42f9-c805-6fb9893dbec1.png)
左のペインから"Commits"や"Pushes"も選択して、状態を確認しましょう。

## masterブランチにマージする
### プルリクの発行
左のペインから"Pull requests"を選択します。"取り込んでください"という依頼をする行為です。
"New pull request"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/92b1ece9-8231-a849-1077-4ca59537bd6e.png)
どこからどこにマージするのか、プルリクエストについてのタイトルと説明、レビュアーやWork Itemの選択を行い"Create"ボタンをクリックします。

### マージ
実際には、ファイルの中身を精査したり色々と作業がありますが、今回はお試しですのでそのまま画面右上の"Complete"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/b2c34de0-5204-e01a-9512-6e0fc5f37eb5.png)
マージに関するあれこれを聞いてきますが、そのまま"Complete merge"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439826/a602aff5-0488-bd2b-afcb-d84ae977ea48.png)
これでmasterブランチへのマージは完了です。
特に何も問題無く改修が完了しました。

# まとめ
今回は、Reposにファイル登録を行ってみました。

- 作業用のブランチをきる
- クローンして作業する
- コミットしてプッシュする
- プルリクかけてマージする

これがReposを利用する際の基本的な流れです。