プルリクエストを作成したいのにmasterブランチで作業を行なっていて、知らずのうちにコミット・プッシュを行ってしまっていた。そんな時の解決方法を知りたい!
こんにちは
僕は某プログラミングスクールに通っていたのですが、応用カリキュラムに上がると自分の書いたコードを、プルリクエストを作成しレビュワーさんに見てもらったり、最終課題ではチームメンバーの人にチェックをしてもらっていました。
そんな中、ブランチを切らずに作業して、
プルリク出したいのに出せない!どうしよう!もうhistoryにいるじゃん!
って、なったこともありました。
さあ、今回はそんな時の解決方法をご紹介します。
1.masterで作業をする(ブランチを切り忘れている)
2.コミット・プッシュをする(masterで作業しているのでプルリク作成できないことに気づいてない)
3.見事リモートリポジトリに情報が渡り、github desktopのhistoryでコミットの確認ができた。
4.プルリク作れない。どうしよう
こんな時に使用する超便利なコマンドがgit cherry-pickです
まず、プルリクを出したいコミットのIDを確認します。
確認方法は2つ。
・github desktopでhistory下のコミットを右クリックし、「COPY SHA」をクリック。
・ターミナルでgit logコマンドを入力して確認する
今回はgithub desktopメインでの方法でいきます。
COPY SHAでコミットIDはしっかりコピーできました。
その後github desktopから、コミットを右クリックでrevertをし、COPY SHAしたものと同じコミット名のものを打ち消します。
revertができたら、pushを忘れずに。
するとコミットが打ち消されました。
次に新規ブランチを作成し、ターミナルを開きます。
ここでgit cherry-pick コミットIDを打ち込みます。
そしてgithub desktopを見てみると、左下にundoで打ち込んだIDのコミットの情報を引っ張ってくることに成功しました!
しっかりと新しく作成したブランチに情報を持ってくることができたので、あとはいつも通りコミット→プッシュ→create pullrequestをすれば完璧!!プルリクが作れる!!
今回紹介したcherry-pickは他のブランチの特定コミットを反映できるコマンドです。
使い方次第でいろいろな問題が解決されること間違いなしなので、是非使ってみてください。
本日のアウトプットでした。
github desktop使わずにターミナルで操作できたほうが良さそうなので、少しづつ理解を深めていきたいです。