Git:違うブランチで作業してしまった![stash]

ブランチを間違えた リポジトリとブランチの言葉をミスって取り違えてしまった。反省反省

日常業務のTipsをまとめるブログシリーズ第3弾!今回もGitのお話です。朝一発目に作業を開始していると、間違えて別ブランチで作業をしちゃうなんてことありますよね。僕は今日ありました。そんなときに便利なコマンドをちょろっと紹介していきます。知らなかった人は、メモして知っている人はふ~んと思ってくださいw。

どもども!最近は、エンジニアをやっていく上での基礎的な知識を固めることも大切だなと思っています。龍ちゃんです。一般的に使われているけど、なんとなくで使ってしまうみたいな経験ありませんか?僕はよくあります。そして今日もそんなGitにまつわるお話です。

今までは、怒られたり注意された内容をもとに作っていきました。今までの記事を下にまとめておきます。

注意されることは幸せです。こないだ、ルンルンでコードレビューを依頼したら、一点の修正点だけ送られてきて、「だいぶ良くなってきました」とコメントをもらってガッツポーズがでてしまいましたね。

さて本題です。今回は、具体的なシーンを含めてGitの使い方を紹介していきます。今回限定するシーンとしては、「作業しなきゃいけないfeature/Aブランチではなくmainブランチで結構な作業をしてしまった」というシーンです。まぁ結構な作業をしたなんて書くと「適切なコミット粒度で!」と怒られてしまいそうですが、具体的なコマンドとしては「stash」です。コマンドだけ知りたい人はここをクリック

Git Stashって?

一言で説明するなら「コミットしていない作業を一時的に保存する」ということになるかと思います。具体的に行えることに関していえば、僕より精密に解説している記事がいっぱいあるので、おいておきます。

ちゃんと理解して使用することができれば、めちゃくちゃ便利な機能が盛りだくさんなのでちょっとずつ学んでいきましょう。

別ブランチで作業しちゃった!

では、別のブランチで作業してしまった人のために回答を救いのコマンドを列挙していこうと思います。状況としては以下をイメージしてもらえればよいかと思います。

前提ですが、「作業用のブランチ(feature/A)がすでに存在していて、派生元で作業していない」となります。もし作業が起きても、ローカルでコンフリクトが起きるだけなので安心してください。今回の登場人物のイメージを置いておきます。

developで一時保存
feature/Aに移動
stashから変更反映や

流れとしては画像のとおりです。それでは具体的なコマンドです。

# 1 いったん保存
git stash 

# 2 世界線移動
git checkout feature/A

# 3 変更反映
git stash pop

コマンドとしては以上です。オプションも何も設定しなければ最新の「いったん保存」が反映されます。「stash」コマンドではメッセージを付けたり、「何番目のいったん保存」を反映させるといった処理も可能ですが、朝一の寝ぼけ眼なら最新のものを最新に反映させるで十分だと思います。

おまけ

実は、先ほどの例で「feature/A」のブランチが存在していない場合は、そのままブランチを切って作業してあげれば、変更を持っていくことが可能なんです。なので、ブランチを切ってしまったときはしれっと作成して移動しましょう。

終わりに

ども!今回もさくっとまとめてみました。日常でたまったTipsをブログに駄々漏らし中です。今週からBugFixが始まったので、激しめにブランチを切ってPRを発行しまくっています。

ブランチの運用についてだったりまだまだ、僕はGitを使いこなせてないので成長記録のように漏らしていきます。さて!今日もBugをつぶしていきます。

さてブランチとリポジトリを間違うという大失態をしてしまったわけですが、出先で変更できないというジレンマを抱えて同僚に公開を止めてもらいました。教えてくれた方ありがとうございます。書いている時は完璧だと思っているので、深夜に作った文章はちゃんと校閲しないとダメですね。

ではまた~

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

2 COMMENTS

名無し

タイトル、中身ともに、用語としての「リポジトリ」と「ブランチ」がごっちゃになっているようです。
「ブランチ」が正しいかと思いましたので、修正されたほうがよいかと思いました。

(特に返信等不要なので、コメント入力フォームのName, Emailは適当なものを入力いたしました)

返信する
アバター画像 龍:Ryu

ご指摘ありがとうございます。
まったくもってその通りです。修正しました。

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です