LoginSignup
0
0

More than 5 years have passed since last update.

Gitで作業中に起きた問題と対処法

Last updated at Posted at 2019-04-14

今回は以下のような場合の対処法

  • 誤ってmasterブランチで作業を行ってしまった

  • 作業内容をコミットせずに別のブランチで作業を行いたい

対処法 : git stash コマンドを使用する

git stashとは
変更を一時的に退避しておくことのできる機能

まだcommitしていない状態の変更ファイル
(addしてる or add していない)が存在する状況で、
次のコマンドを実行すると変更ファイルを退避することができる。

terminal
$ git stash

これで、
作業途中のブランチAの変更内容を退避させ、
作業したいブランチBに切り替えて作業を行うことができる。

ではブランチBでの作業完了後、ブランチAの作業に戻りたい場合はどうする?

stash(退避)した内容を確認・復活させる方法

確認

terminal
$ git stash list

上記を実行すると

terminal
$ git stash list
 stash@{0}: WIP on ブランチA: 168601a Add chat-side
 stash@{1}: WIP on ブランチB: 189061a Add chat-main

現在退避させている一覧を確認することができる。
※退避させている数だけ行が増える

説明
 stash名: WIP on stashを行ったブランチ名: ハッシュ コミットコメント

復活!

listの中から復活させたいstash名を確認し、以下コマンドを実行。

terminal
$ git stash apply stash@{0}

上記の場合、ブランチAで行ったstashが復活する。

stash applyで変更を復活した場合、stashリストのなかに復活済みの変更が残る
これを削除するには、次のコマンドを使用する。

terminal
$ git stash drop 消したいstash名

復活と削除を同時に行う場合は

terminal
$ git stash pop stash名

stashが溜まってくると、なにを変更したのか、どれが必要な変更だったのか
わからなくなるのでこまめに消したり管理することが大切。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0