7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Git】ブランチ切り替えできない時。ブランチの派生元確認方法と削除方法。

Posted at

概要

git branchの超基本的な理解とgit checkoutができない場合のエラー解決法について書いています。

エラー内容

$ git checkout [移動先のブランチ名]

でgit branchを移動しようとした際にエラーが発生。

error: Your local changes to the following files would be overwritten by checkout:
    ファイル名
Please, commit your changes or stash them before you can switch branches.
error: The following untracked working tree files would be overwritten by checkout:
    ファイル名
Please move or remove them before you can switch branches.
Aborting

ワーキングツリーに知らないファイルがあるので、コミットかスタッシュしてからブランチ移動しろとのこと。

原因確認

エラー発生時のgit branchの状況は以下。

  master
  step4
* step5

step4で実装した機能をプルリクしている状況の中で
step5のブランチを切って進めている時。

確認してみるとstep5にいる時のファイルがstep4の時のファイル内容と異なっている。
さらに、masterには移動ができる状態だったのでstep4→step5ではなく、master→step5とブランチを切ってしまっているなと気づきブランチの派生状況を確認するため以下で今のブランチの派生元ブランチを特定。

$ git show-branch
* [master] Merge pull request #3 from ktanizaw/step3
 ! [step4] add:管理画面アクセス制限、削除制限
  ! [step5] Merge pull request #3 from ktanizaw/step3
---
 +  [step4] add:管理画面アクセス制限、削除制限
 +  [step4^] add:ユーザー管理画面
 +  [step4~2] add:ログイン時のユーザー機能制御
 +  [step4~3] add:ユーザー作成タスク詳細画面
 +  [step4~4] add:管理者画面、ユーザー一覧、削除、編集、作成
 +  [step4~5] add:ログイン・ログアウト機能
 +  [step4~6] add:ログイン・ログアウト機能
 +  [step4~7] add:seedデータ、アソシエーション
--- [master] Merge pull request #3 from ktanizaw/step3

*が現在のブランチ。
!がその他のブランチ。

ブランチの右には最新コミットが表示されている。
masterとstep5の最新コミットが同じということで、
やはりmasterからstep5のブランチを作成していた。

---以下についている+はコミット内容で、インデントが揃っているブランチに対してのコミット。
今回はstep4にのみコミットしていたので全てstep4のインデントと同じになっている。

解決方法

step5の内容をstep4と同じにしてからコード追加をしたいだけだったため、
間違えて作成したstep5のブランチを削除することに。
移動ができない原因の不要なファイルを削除して、masterに移動してstep5を削除していきます。

$ git status

でファイルの状況を確認し、赤文字の中にある
Changes not staged for commit:のファイルは以下で削除。

$ git checkout file_name #特定のファイル
$ git checkout . #すべて

Untracked files:のファイルは以下で削除。

$ git clean -f
$ git branch -d [ブランチ名]

これでスッキリして、新しく正しい位置からブランチを作成できました。

参考

https://qiita.com/konweb/items/061475d6376db957b3c4
https://qiita.com/hogeta_/items/33d2334c9b1919bd5120

7
3
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
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?