GitHubDesktopでやりがちなエラー時の対処法

#はじめに
今回はGitHubDesktopでやりがちなミスをしてしまった時の対処法を紹介します。

#ブランチを作成するのを忘れていた場合

うっかりmasterブランチのままコードを書いてしまっていた時の対処法です。

<a href="https://gyazo.com/5a153d823553330beaf312e7f421e070"><img src="https://i.gyazo.com/5a153d823553330beaf312e7f421e070.png" alt="Image from Gyazo" width="960"/></a>

上のような状態になってしまった時ですね。
このような場合はそのまま新しくブランチを作ります。

<a href="https://gyazo.com/2b9089ad90e41be501aa3426e9d56441"><img src="https://i.gyazo.com/2b9089ad90e41be501aa3426e9d56441.png" alt="Image from Gyazo" width="960"/></a>

ここで新しいブランチ名を入力して作ります。
今回は「事前準備ブランチ」という名前のブランチにしました。

するとこのような画面になります。

<a href="https://gyazo.com/a07184d30de3b06f241bf3b8e4492a33"><img src="https://i.gyazo.com/a07184d30de3b06f241bf3b8e4492a33.png" alt="Image from Gyazo" width="451"/></a>

ここでの説明は以下の通りです。
- **Leave my changes on master** は変更したコードの内容を無かったことにします。
- **Bring my changes to 事前準備ブランチ（ブランチ名）**は変更したコードの内容をそのまま引き継ぎます。

なので下の**Bring my changes to 事前準備ブランチ（ブランチ名）**を選択しましょう。

するとこうなります。

<a href="https://gyazo.com/1ffe01a4639669424c4e3027a30d7277"><img src="https://i.gyazo.com/1ffe01a4639669424c4e3027a30d7277.png" alt="Image from Gyazo" width="961"/></a>


無事に新しく作成した事前準備ブランチに変更したコードの内容がそのまま引き継いだままになってます。めでたし、めでたしですね。

（実は**Leave my changes on master**を選択しても元のコードを引き継ぐ方法はありますが少し手間が増えますのでここでは割愛します。）

#間違えてコミットしてしまった場合

では次に間違えてコミットしてしまった時の対処法です。

先程の画像の事前準備ブランチをコミットしました。
(コミットメッセージは**「messageコントローラーの作成」**としました。)
するとこのようになります。



<a href="https://gyazo.com/a39d853b630f663f32dc905ab7b04321"><img src="https://i.gyazo.com/a39d853b630f663f32dc905ab7b04321.png" alt="Image from Gyazo" width="956"/></a>

ですがここで本当はまだコミットすべきでは無かったと気づいたらどうすればいいか？
（例えばまだ修正すべき箇所が残っていた時など）
そのような場合は左下にある「Undo」というボタンを押します。

<a href="https://gyazo.com/b4f3bc30b96cdddf3234b172cd364ea8"><img src="https://i.gyazo.com/b4f3bc30b96cdddf3234b172cd364ea8.png" alt="Image from Gyazo" width="253"/></a>

するとこうなります。

<a href="https://gyazo.com/da4b37ab1198eb7f67299e90a243bb34"><img src="https://i.gyazo.com/da4b37ab1198eb7f67299e90a243bb34.png" alt="Image from Gyazo" width="959"/></a>

無事に戻りましたね。
イメージとしてはブラウザの戻るボタンなどと同じ感じですね。
注意して頂きたいのが「Undo」を使えるのは**「push」**する前までなので気をつけてください。

#ではpushしてしまった場合はどうするか？


<a href="https://gyazo.com/43110ee49a92f3974ba5b388d24470ed"><img src="https://i.gyazo.com/43110ee49a92f3974ba5b388d24470ed.png" alt="Image from Gyazo" width="954"/></a>


このような状態ですね。
「**Create Pull Request**」となっていることからも分かるように**push**してしまった状態です。
先程もお伝えした通り「Undo」は使えないのでこの場合はどうするかといいますと、
このような時は**「Revert」**という機能を使います。
以下の画像を見てください。


<a href="https://gyazo.com/368af5cc14d2abfee63435ba9f77fa41"><img src="https://i.gyazo.com/368af5cc14d2abfee63435ba9f77fa41.gif" alt="Image from Gyazo" width="954"/></a>


今回の戻したい誤ったコミットは**「messageコントローラーの作成」**です。
なので該当のコミットメッセージのところで右クリックをすると表示される項目に**「Revert this Commit」**というのがあるのでそれをクリックしてください。
すると**「Revert"messageコントローラーの作成"」**というコミットが新しく追加されていると思います。
この**「Revert"messageコントローラーの作成"」**というコミットは**「messageコントローラーの作成」**のコミットを戻すというよりはそのコミット内容のコードと同じ内容のコードを削除修正するコミットを自動的に作ってくれる機能になります。
少し説明だと分かりにくいと思いますので以下の画像を見てください。

<a href="https://gyazo.com/8f80bc23a518eebb6f930c497ceb5b75"><img src="https://i.gyazo.com/8f80bc23a518eebb6f930c497ceb5b75.png" alt="Image from Gyazo" width="957"/></a>

これは**「Revert"messageコントローラーの作成"」**のコミットの内容なのですが全て<font color="red">赤くなって「ー (マイナス)」</font>になってると思います。
<font color="red">赤くなっている表示はコードから削除修正した内容という意味になります。</font>
よってこの削除修正した内容のコミットを改めて**「push」**することで該当のコードをリモートリポジトリから削除することが出来ました。

#おわりに
いかがでしたでしょうか。
今回はとても初歩的なエラー時の対処法について書かせて頂きました。
ですが自分もまだまだ全然初心者ですのでなにか間違いなどありましたら教えて頂ければ幸いです。ここまでお付き合い頂きありがとうございました。

#余談
今回で２記事目の投稿になるのですが前回はただ文字だけでしたが今回は画像やGIFを入れたり文字色を変えたり出来たのでだんだんと書いてるのが楽しくなってきました。笑