Git HubでVisual Studio 2015のプロジェクトを新規作成及び開発する．2020年10月更新

#はじめに
就活をするにあたってGit Hubのアカウント経由で今まで行ってきた開発を共有して欲しいと要望されたため，自身の環境に合わせて開発手順をまとめ直す．

環境
[Visual Studio professional 2015](https://visualstudio.microsoft.com/ja/vs/older-downloads/) :version 14.0.25431.01 Update3
[Git for windows 2020 10月時点最新版](https://gitforwindows.org/) :version 2.28.0
[Git Hub](https://github.co.jp/)

基本的にはVisual StudioのWin32コンソールアプリケーションで開発．

とりあえず単語に関してのメモとして．
リポジトリ：バージョン管理によって管理されるファイルと履歴情報を保管する領域
コミット　：ローカルレポジトリのに自分の変更を上書きする（リビジョンとも呼ばれる）．
プッシュ　：リモートリポジトリに自分の変更履歴をアップロードする．
マージ　　：リポジトリの内容をコピーすること．
ソリューション：プロジェクトのこと．


######初回の作業として
1．Git for Windowsのインストール（更新）
2．Visual Studio 2015とGitHubを連携

######プロジェクトの作成として
3．Git Hubでリポジトリの作成
4．リポジトリとVisual Studioのプロジェクトを連携
5．ブランチの作成とコミット

######Win32コンソールアプリケーションの開発として
6．プロジェクト（ソリューション）の新規作成
7．プロジェクト（ソリューション）のコミット
8．プロジェクト（ソリューション）のプッシュ
9．完成したプロジェクトをデフォルトブランチとして更新（最新の状態を共有できるように）


という流れ．

#1. Git Hubのインストール（更新）


[Git for windows](https://gitforwindows.org/)にアクセスしてDownloadを押すだけ．
特に設定は変えなくても大丈夫なのでデフォルト状態でインストール．元々過去のバージョンがインストールされていても勝手にアップデートされる．
インストールされたらGit Bashというソフトを開く
![01-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/4ef97c58-48bb-4d96-92b9-07058e94e2cc.jpeg)

Git Bashを起動後に，以下のコマンドを入力して正しくインストール/更新ができているか確認．

```
$ git --version
```

#2. Visual Studio 2015 とGitHubを連携

①右下のチームエクスプローラーを開く
②GitHubの「接続..」を押すとログイン画面が出てくるのでログイン
これで初期設定は完了
![03-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/bef48117-883b-caac-9a76-288df3abed4d.jpeg)




#3. Git Hubでリポジトリの作成
ログインした後，左上のNewからリポジトリを作成．すでに作ったものはNewの下にリストとして表示されている．
![02-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/fc674dc4-1bc8-28a6-7e60-6292d2729e61.jpeg)

Newを押すとリポジトリの作成画面が表示され，
①任意のリポジトリ名（プロジェクト名）
②リポジトリ説明文：任意
③公開するか，非公開にするか．（2019年から無料アカウントでも非公開のリポジトリを作成可能に）
④「Add a README file」はリポジトリの説明や使い方を書くREADMEファイルを事前作成するかどうか．基本的にはチェックを付けとく．

⑤Git の管理に含めないファイルを指定するためのファイル（除外ファイルの指定），Win32コンソールアプリケーションでは絶対に必要になるのでチェックを付けとく．（設定を後述）

⑥ライセンス＝使用許諾条件，ライセンスの選択は義務ではないが，ライセンスがない場合はデフォルトの著作権法が適用され，ソースコードの複製，配布，派生物の作成は誰にも許可されない．オープンソースのプロジェクトを作成をする際にはオープンソースライセンスを設定する．

![02-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/26826b51-d358-2fc3-278e-69e5091d079d.jpeg)

除外ファイルの設定として，
gitignore. templete:　は VisualStudio を選択．

![02-3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/dfe6b199-0dd0-5ac3-6544-15b3b1dc67b7.jpeg)




#4. リポジトリとVisual Studioのプロジェクトを連携
リポジトリのトップ画面からCodeを押す．
![04-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/068faca9-64ae-0b47-bb32-9db01b58c8d5.jpeg)

でてきた画面の「HTTPS」を右側のボタンを押してコピーする．

![04-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/08588ff8-fece-fbe9-7db8-ea531cc21d9c.jpeg)

次にVisual Studioを開いてチームエクスプローラーのGitHubから複製を押す

![04-3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/ab91dfb1-fa85-a19f-a68a-a0c94449f71b.jpeg)

そうすると設定画面が出てくるので
①先ほどコピーしたURLを張り付け
②ローカルのフォルダが作られる場所を指定する

![04-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/f5a75a24-dff3-fae5-93b5-5ff857c53366.jpeg)

URLとローカルパスを指定した後Closeを押す．

![04-5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/b1c1ecb0-a03b-4baa-ef4a-918b7e917e93.jpeg)

正常に開けるとプロジェクトの操作画面が出るので設定を押す．

![04-6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/619e69e2-9952-9a08-5f39-2d10b0838c8b.jpeg)

グローバル設定を選び

![04-7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/07f7940e-238e-6cab-b7af-e70bb3354ae5.jpeg)


①ユーザー名
②電子メールアドレス
を入力して．
③「更新」を押す．
（初回のみ）

![04-8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/7e10008f-4ba3-0298-f931-a04d21ed0faa.jpeg)

プロジェクトの接続は緑のコンセントマークから
プロジェクトの設定などは右の家マークからそれぞれ変更できる．

![04-9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/4beec24d-9278-708e-b011-d4bb5ed9cdad.jpeg)

#5. ブランチの作成とコミット

プロジェクト画面からブランチを押す．
![05-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/ea7159a6-8b99-9bef-b009-c1357405aef5.jpeg)

次にプロジェクト名を右クリックし，「新しいローカルブランチ...」を押す．

![05-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/ac24d4c4-7d47-2a7a-4f93-79749f4bcfd1.jpeg)

①「ブランチ名を入力してください＜必須＞」には任意の文字（develop）などを入れる．
②プルダウンメニューからmasterを選ぶ．
③ブランチの作成を押す．

![05-3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/a8f04939-251a-2db9-7a5f-6024732cacbe.jpeg)

ローカルのレポジトリ内に新しいブランチ（Develop）が作成される．

![05-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/b263acf5-7a60-70d3-ff7c-8a1e5a5b83f3.jpeg)

まだローカルにブランチを作成しただけなので，次はリモートへ作成したブランチをプッシュする．
ホームの同期を押す．

![05-5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/644df959-83f6-2e5a-d226-c398ededba5b.jpeg)

出力方向のコミットの，「公開」ボタンを押す

![05-6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/73a8e51f-ed48-e9c9-b80b-c33625275787.jpeg)

ブランチ　（Develop）　がorigin に正常に発行されました．と表示されれば問題なく更新されている．

![05-7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/77ad3d9b-7137-1cbd-29e3-1bb6387418e2.jpeg)

リモートのブランチにも追加されているかチェックしておく．

![05-8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/a83434fe-dce6-5dfe-3f20-425044e68d3a.jpeg)

①今回は新規編集用にver0.1というブランチを作成．
②右下に表示されているのが現在編集しているブランチ．（ブランチ名をダブルクリックで変更可能）

![06-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/dd2491cc-bedf-43e8-ad73-7b72bd9fcd39.jpeg)

#6. プロジェクト（ソリューション）の新規作成

普段の開発通り，左上のフォルダ→新規作成→プロジェクトを選ぶ
①Win32コンソールアプリケーションを選ぶ（任意のもの）
②プロジェクトの名前を決める（ここではtest_application）
③場所はローカルリポジトリ（ここではC:\Users\ユーザ名\Desktop\Quiit_Test\）に直接入れるか，フォルダ内ににSrcフォルダを新規に作って入れる（C:\Users\ユーザ名\Desktop\Quiit_Test\Src\）など．今回は前者を使用．


![07-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/d1feccba-4b3f-f90b-b006-4a13fd7c3095.jpeg)

右下のソリューションエクスプローラーからローカルでの開発と同じようにプログラムを作っていく．

![07-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/087d93e8-a872-ff20-5478-60ab089ac5dc.jpeg)

main.cを作成してHellow word!を出力するプログラムを書いてみる．

```main.c
#include <stdio.h>

int main() {

	printf("Hello word!\n");

	printf("結果確認後は、Enterｷｰを押下してください。\n");
	getchar(); // エンターキー押下待機

}

```

![07-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/a8a3bb16-92e7-b097-fb0f-527b2e53d4bd.jpeg)

一度デバックしてみる．

![07-5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/29af24f5-4a2c-78b8-55dd-7d6a0ac45842.jpeg)

#7. プロジェクト（ソリューション）のコミット

問題がなければ，チームエクスプローラー→ホーム→変更を押す．

![07-6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/88bb21ff-520e-2b2d-40e1-993f785734b5.jpeg)

①「コミットメッセージを入力してください＜必須＞」には追加した内容などの変更点を記入する．
②すべてをコミットを押す．

![07-7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/eabd159f-9f69-dee5-291e-c721a4ac6fa3.jpeg)

これでローカルレポジトリへのコミットができました．

#8. プロジェクト（ソリューション）のプッシュ

コミットが問題なくできたら，ホーム→同期を押す．


![05-5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/644df959-83f6-2e5a-d226-c398ededba5b.jpeg)

先ほどコミットしたデータが表示されているのを確認し，
①クリックして選択する．
②同期を押す．

![08-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/eae9f719-010d-7f0c-5daf-1f2e3e69b2e8.jpeg)

問題なければ「入力方向および出力方向のコミットが正常に同期されました」と出る．

![08-3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/99872483-4754-f2f9-3489-f14f3b6878d6.jpeg)

Git Hub上でも問題なく表示されていることを確認する．

![08-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/4af0ffd9-5a00-166e-3cb2-d2640994a861.jpeg)

#9. 完成したプロジェクトをデフォルトブランチとして更新（最新の状態を共有できるように）

２つ方法があり
・Git Hubでデフォルトのブランチを変更する．
・mainに設定しているブランチにマージする．

Git Hubでデフォルトのブランチを変更する方法では，
①Settingsタブを選択
②Branchesタブを選択
③デフォルトにしたいブランチを選択してUpdateを押す．

![09-3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/5bf23e53-8d8b-ed8d-9154-092bc2122cfe.jpeg)

mainに設定しているブランチにマージする方法では，
チームエクスプローラー→ブランチから

①編集中のリポジトリをmainに変更する．
②マージするブランチに完成したブランチを選択する（ここではver.0.1）．
③マージを押す．

![09-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/e468df47-8beb-d4f7-55d7-13147ff52138.jpeg)

一度，チームエクスプローラー→ホームに戻り，ソリューションからプロジェクトを開き，日付を入力する．
後は8と同じようにプッシュを行う．

![09-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/bcbfee47-5135-d43b-bfd7-f2b258710067.jpeg)



####参考サイト

[【超入門】初心者のためのGitとGitHubの使い方](https://techblog.rakus.co.jp/entry/20200529/git#%E5%9F%BA%E6%9C%AC%E7%9F%A5%E8%AD%98)

[Visual Studio 2015 (VS15)からGithubにPushする](https://qiita.com/saiyuki1919/items/70b341d28c165e62a90d)

[Visual Studio 2015とGithubでGitflow（No.1）](https://qiita.com/Nuits/items/517c096755326055b8b6)

[サル先生のGit入門](https://backlog.com/ja/git-tutorial/)

[【Visual Studio2015】ソリューションを GitHub と連携してホストする手順](https://oki2a24.com/2016/08/16/connect-github-from-visual-studio-2015-with-extension/)

[VisualStudio2015 Update1で発生したチームエクスプローラーのGitに関するエラーと回避方法](https://cdecrement.blog.fc2.com/blog-entry-198.html)

[.gitignore の書き方](https://qiita.com/inabe49/items/16ee3d9d1ce68daa9fff)