にかいどーIoTびぼうろく H30.8.5

#GitHub導入
今回はいつもと違い、いい加減git入れろというフォロワーの圧力に屈したgitHubのVisual Studio Codeへの導入記である。
gitHubを導入するにあたりまずはgitってなんなんだというところから入ったのであるが、
ゲームでも古いバージョンのほうが安定してて面白いからそっちでプレイしたいということがあるが、同様にコード作業で戻ったりしたりして管理しやすくなるということのようだ。
まずはgitインストールであるが、以前Visual Studio Codeを入れたときに、「gitが見つかりません」とうるさいのでgitだけはインストールしていた。
なのでどうやってインストールしたか覚えていない。おそらく次へ連打しただけであろう。
つまり最初にやったことはgithubのアカウントを取得したことである。
これも特に苦労はせず言われるままに登録した。

#Git語
新しいことを始めると語を覚える必要がある。
そしてどんな業界でもよくあることなのであるが、業界人にはわかっても非業界人にはなかなか理解しにくい語というのがある。
当然Gitも同じであり、私のような別業界の人間が始めるにはなかなかキツく脱落しそうになるので、読み替えた語を出しておく。

レポジトリ→コード置き場
リモートレポジトリ→正規コード置き場
ローカルレポジトリ→作業コード置き場
プッシュ→正規コード置き場に保存
コミット→作業コード置き場に保存
ブランチ→分裂
マージ→合体

今後特に断りがなければ分裂（ブランチ）のように日本語のほうを先に書くようにする。

#コード置き場作成
まずは正規コード置き場（リモートレポジトリ）を作成する。
GitHubにログインし、repositoryのところのnewを押せばいい。
![WS000000.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/0a48063a-5d70-024d-e7cc-670102f73fa4.jpeg)

作業置き場の名前はとりあえず今回はlearngitとしておく。
![WS000001.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/aff9b903-7906-2eb0-e00a-1a948da584af.jpeg)

これでGitHub側の正規コード置き場（リモートレポジトリ）の作成は完了だ。
次の画面の文字列はすぐに使うので画面を閉じずにとっておく。
あとでコピペで使うのだ。
![WS000002.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/cb78fb30-730b-ad33-0307-e5648558ed69.jpeg)

次にWindowの作業コード置き場（ローカルレポジトリ）を作成する。
素直にWindowsの右クリック新規フォルダを作成で問題ない。
![WS000005.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/815059a0-b4c8-dc21-552f-d17eb2d6eeb3.jpeg)

フォルダ作成だけではまだ作業コード置き場（ローカルレポジトリ）として機能しないので教える必要がある。
そのためVisual Studio Codeを起動する。
起動したらファイルからフォルダーを開くを選択する。
![WS000006.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/ed03608d-9f8d-9f79-7973-83a62e76ae9a.jpeg)

選択したらそのままさっき作成したlearngitフォルダを選択すれば良い。![WS000007.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/a914072c-4780-99af-d677-1558e9080a34.jpeg)

次は左側に並んでるアイコンの上から三番目（真ん中）をクリックするとソース管理画面になるので、その右の小さいアイコンをクリックする。
![WS000008.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/7bd15abe-21fb-c1e2-7c02-1badb4b7992c.jpeg)

これで作業コード置き場（ローカルレポジトリ）は完成だ。
今度は作業コード置き場（ローカルレポジトリ）と正規コード置き場（リモートレポジトリ）を繋ぐ必要がある。
Visual Studio Codeにてキーボードの Ctrl+@ の2つのキーを同時押しする。
すると以下のような文字列を打てるターミナルが右下に出てくる。
![WS000009.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/6e3c00be-9567-246f-e9dd-0276bdcf79d0.jpeg)

ここでさきほどのGitHubの正規作業コード置き場作成の時に後で使うと言っていた文字列が必要になる。
![WS000003.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/1182dfcf-d477-bffd-0f23-13a69d1cd225.jpeg)
![WS000004.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/2de7ef51-99ca-d7fc-20b6-3fb60d0a173f.jpeg)

どちらもコピーしたあと、ターミナルにCtrl+vで貼り付け、Enterを押せば良い。
これで作業コード置き場は完成だ！

#Gitを使ってみよう！
実装テストである。
とりあえず、私はPythonしか使えないので、

```Python:meinstream.py
print("最初の状態だよぉ（*'∀'人）♥*+!")
```

というのを作成。
ここから流れを見ていく。
まずは作業コード置き場に保存（コミット）である。
このチェックマークを左クリックすれば保存される。
コミットメッセージは”最初の保存”とでもしておく。
![WS000012.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/150fe155-65e3-ff93-e5a2-ee6c0e6b56cb.jpeg)

次はこの状態を自分の作業コード置き場に保存（コミット）だけでなく、正規コード置き場にも保存（プッシュ）させたい。そのためには「・・・」となっているところを押し、プッシュを押せば良い。
![WS000014.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/414cc824-135e-c90b-7682-d84162af0afe.jpeg)

これでGitHubにも保存されたはずだ。
確認してみよう。
![WS000015.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/c091039e-8833-37eb-a3c5-2051f4c69dbf.jpeg)
![WS000016.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/c548acc0-7133-f696-4968-ed2b7ec113df.jpeg)

これで正規コード置き場にも保存できた。
次は分裂（ブランチ）を試す。
左下にmasterというのがあるがそこを左クリックする。
そうすると新しいブランチを作成というのがでてくるのでそれを押す。名前はsecondstreamとしておく。
![WS000019.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/11b245d5-609b-c4d8-eccf-9eab9bbfd52b.jpeg)

これで分裂（ブランチ）した。
masterとsecondstreamの2つに同じものができたのだ。
masterはあまりいじらず作業はsecondstreamで行えば良い。
次は分裂（ブランチ）したのをまた合体（マージ）を試したいのでsecondstreamのほうのmeinstream.pyをちょっと変更しておく。

```Python:meinstream.py
print("最初の状態だよぉ（*'∀'人）♥*+!")
print("分裂した後の状態だよぉ（*'∀'人）♥*+")
```

これをチェックボタンを押して作業コード置き場に保存（コミット）した後に正規コード置き場に保存（プッシュ）する。
左下がsecondstreamになっていることを確認しよう。
![WS000021.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/2e22a651-43e1-e2eb-bcfc-ffbde381792f.jpeg)
![WS000022.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/edb5867e-f115-9597-8f71-306b539128fa.jpeg)

左下をまたクリックし、元のmasterに戻すと2行目のprint("分裂した後の状態だよぉ（*'∀'人）♥*+")が存在せず、
masterのほうには反映されていないことがわかる。
![WS000024.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/dfc675e4-0614-8e4e-a2ec-e0194bf9009a.jpeg)

合体（マージ）させるには左下がmasterの状態でキーボードのCtrl+Shift+pの3つのボタンを同時押しし、
Git:ブランチをマージ　を選べば良い
![WS000025.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/acace73a-1fc5-b7b4-b0fd-6f8de5317f50.jpeg)
![WS000026.JPG](https://qiita-image-store.s3.amazonaws.com/0/269002/8f7954d6-4fcc-3a06-ce72-24251bed4301.jpeg)

これでmasterのほうに分裂（ブランチ）したコードを合体（マージ）させることができた。
今回は作業コード置き場で保存（コミット）だけでやっているが正規コード置き場で保存（プッシュ）を使えばGitHubアカウントにも反映される。

#書くことはたやすい。間違った言葉を棒引きするだけでいいのだ。　マーク＝トウェイン
今後はコードを書くときに間違ったコードも残せるようになる。
どんどん変なコードを買いていきたい