こんにちは、エンジニアのオオバです。
Sourcetreeで追加してはいけない画像を
GitHubにアップロードしたことないですか?
「ヤバイ!間違えた!!」って。なりますよね。
ちなみにオオバも何度も間違えています(汗
(だって人間だもの)
ところで、 ミスしたときにメチャクチャ焦る人 があります。
エンジニアからみると、
「まあまあ落ち着いて下さい」 と言いたいです。
そんな大きな問題ではないことが多い。
むしろ焦って元に戻そうとして泥沼化するほうが怖いですね。
ミスしたコミットはすぐに直せます。
そう、Sourcetreeならね。
ただ操作方法を知らないだけなんですよね。
ということで、
間違えたファイルをコミットしてメチャメチャ焦る人に向けて
間違えたコミット、プッシュを直す方法 を紹介していきます。
これを覚えておくと間違えたときも
落ち着いて適切に対処できるようになりますよ。
基本は修正して再度コミット・プッシュで問題なし
間違えたファイルのgit操作ごとに
対処法を簡単にまとめました。
- コミットしただけの場合 : リセットして完了
- プッシュした場合 : 修正画像のコミット & プッシュ
- 本流ブランチにマージされた場合 : 修正画像のコミット & プッシュ
基本的には間違えたファイルをコミット、プッシュしたとしても
ファイルを修正して、再びコミット、プッシュすれば大丈夫 です。
どういう操作方法なのか詳細を解説していきます。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
パターン1. 間違えたファイルのコミットを元に戻す方法
間違えたファイルをコミットしただけで、
プッシュ(アップロード)まではしていない場合は、
リセット すれば大丈夫です。
コミットとは作業の履歴のこと。
リセットとはコミットを打ち消す作業です。
つまり リセットすると作業の履歴を削除するということ なのです。
プッシュをしていないため、
作業の履歴をGitHubにアップロードしていません。
自分のPC上の作業履歴を削除するだけなので、
だれにも迷惑をかけませんし、 ミスもバレません。
Sourcetreeでリセットする方法
(例)misstakeブランチで作業して、
「間違えたコミット」を作りました。プッシュはしていません。
Sourcetreeは次のような状態です。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_0](https://i.gyazo.com/4b79cd3017f08b2e678b8ba3f0c9c617.png#750__296)
この「間違えたコミット」を なかったこと にしていきます。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_1](https://i.gyazo.com/3e5921970443d26d652a9a059c127551.png#563__500)
- ① : 間違えたコミットの 1つ前のコミットを選択して右クリック
- ② : misstakeをこのコミットまで戻す をクリック
「misstakeをこのコミットまで戻す」の
"misstake" 部分は作業を打ち消したいブランチ名です。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_2](https://i.gyazo.com/19f649f38b19a73d1800a1fb21f73c5d.png#750__229)
必ず Mixed を選択しましょう。
(デフォルトMixedが選択されています)
OK ボタンをクリックします。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_3](https://i.gyazo.com/07a64577a14289c8f9703da3d88562e4.png#750__327)
すると間違えたコミットはなかったことになりました。
このあとは間違えた画像を修正し、
再びコミット、プッシュしてください。
コミットをリセットしない方がよいパターン
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_4](https://i.gyazo.com/920af6e159dc26bf49b7304634a64923.png#750__256)
プッシュはしていないが、
いくつかコミットをしている場合は注意です。
間違えたコミットのあとに正しいコミットがある場合、
さきのリセットをしてしまうと、
正しいコミットも打ち消されてしまいます。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_5](https://i.gyazo.com/59f963033c98404e74d53e3a429eddee.png#750__290)
この場合は、リセットはせずに
間違えた画像を修正して再びコミットするのが良いでしょう。
エンジニア用語ではリセット
なぜここで「リセット」という名前を出しているかというと、
Sourcetree上で使われている「このコミットまで戻す」行為は
git内部では "リセット" と呼ばれているためです。
エンジニアと対話するときは、
「リセット」と言ったほうが話は伝わりやすいでしょう。
パターン2. 間違えたファイルをプッシュした場合の直し方
間違えたファイルをコミットして、
プッシュまでした場合の直し方の紹介です。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_6](https://i.gyazo.com/5236be0b12c06c565df9e53cac4a6759.png#750__304)
このような状態です。
"origin/misstake" とあるため、
GitHubに間違えたコミットがアップロードされています。
いくつか直し方はありますが、
最も安全な方法 を紹介します。
画像を修正して再びコミット、プッシュしてください。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_7](https://i.gyazo.com/10cebbda206a3ce7278e13f4db1aa3e2.png#750__302)
間違えたファイルを修正してコミット。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_8](https://i.gyazo.com/4480b6faadef29f7d3cd69bba2d1772f.png#750__299)
修正したコミットをプッシュ。
これで間違えたコミットが打ち消され、
正常な状態に戻りました。
ミスした過去はGitHubに残りますが、
メンバーに迷惑をかけることはありません。
パターン3. 本流ブランチにマージまでされた場合の直し方
最後に間違えたコミットをプッシュして、
本流ブランチにまでマージされた場合の直し方です。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_9](https://i.gyazo.com/bc1859b28dd9694b1b56ec1c54d1ee65.png#750__332)
このように「間違えたコミット」が、
本流のmainブランチにマージされた状態です。
この場合の手段は一択です。
さきほどの「間違えたファイルをプッシュした場合の直し方」と同じ、
修正コミットして、プッシュ します。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_10](https://i.gyazo.com/8f068276c68c0e60dd9e3496acbd17b4.png#750__326)
まずは修正画像のコミット。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_11](https://i.gyazo.com/e7a1d98e28bc85d5114b42d52d94e302.png#750__330)
修正コミットのプッシュ。
![【UIデザイナー向け】間違えた画像のgitコミット、プッシュを直す方法_12](https://i.gyazo.com/355dc3796b260bd6f91e0473648102c4.png#750__319)
レビューが終わったらマージされ
本流ブランチが正常な状態になりました。
これで安心。
まとめ : 間違えた画像のgitコミット、プッシュを直す方法
記事の内容を簡単にまとめます。
- コミットだけならリセットで完了
- プッシュしたら修正コミット・プッシュして完了
- 本流ブランチにマージされたらコミット、プッシュしてマージで完了
- まったく焦る必要はない
こんな感じです。
ケースごとに対応方法は変わってきますが、
基本的には修正コミットをいれ、プッシュする。 それだけです。
本当に焦る必要はありません。
ミスが怖くてgitが苦手な方へ、
この記事を読んで直す方法を覚えると道がひらけます。
自転車もブレーキを覚えると、安心しませんか?
gitも同じです。
間違ったコミットの直し方さえ知っていれば安心できます。
gitは業界的によく使われるテクノロジーで
UIデザイナーにとっても必須スキル に近いです。
ぜひともgitのブレーキを覚えて
安心して使えるようになってもらえればと思います。
![](https://i.gyazo.com/1822fe58154553409a225a9ef048f6ee.jpg#1920.0__1280.0)
【Unity】Sourcetreeでコンフリクトを直す方法
Unity開発中のトラブルで発生してほしくないことの1つは「コンフリクト」。対処法を正しく理解して自分自身で解決できるようになりませんか?
![](https://i.gyazo.com/6d98c2d3e502516e4e51021bf64995b4.jpg#1280.0__853.0)
この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいSourceTreeライフをお過ごしください。