質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Q&A

解決済

1回答

1241閲覧

リモートブランチでマージしてしまったもの削除したいのですが、削除出来なくて困っています。

yutaro_0529

総合スコア12

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

0グッド

0クリップ

投稿2020/10/27 14:56

前提・実現したいこと

リモートブランチでマージした
Merge pull request #1 from uraokayutaro1990/検索機能実装のファイルを削除して、
検索機能実装のファイルの前の状態に戻したい。

コミットする際にマイグレーションファイルなど削除した状態のデータでコミットしてしまい、
rails sしてもlocal:host3000にアクセス出来なくなりました。

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

おそらく削除したかったファイルの'【検索機能実装】'はすでに削除したのですが、 マージしてしまったので、エラーが発生していると考えています。 uraokayuutarou@uraokayuutarou-no-MacBook NF % git branch --remote origin/master origin/テーブル設計 origin/フロント実装 origin/検索機能実装 uraokayuutarou@uraokayuutarou-no-MacBook NF % git push --delete origin 【検索機 能実装】 Username for 'https://github.com': /uraokayutaro1990 Password for 'https:///uraokayutaro199090@github.com': remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/uraokayutaro1990/NF.git/' uraokayuutarou@uraokayuutarou-no-MacBook NF % git push --delete origin 【検索機 能実装】 Username for 'https://github.com': uraokayutaro1990 Password for 'https://uraokayutaro1990@github.com': error: unable to delete '【検索機能実装】': remote ref does not exist error: failed to push some refs to 'https://github.com/uraokayutaro1990/NF.git'

試したこと

git branch --remote
で現在のブランチを確認

git push --delete origin 【検索機 能実装】

ブランチの削除を実行

リモートリポジトリの
Active branches
のmasterにマージしたものをリモートリポジトリのゴミ箱マークに捨ててみた。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

branchというのはcommitの繋がりにつけた目印に過ぎません。目印であるbranchを削除しても、mergeされてしまっているのなら問題の解決になりません。こういうときはmerge commitに対するrevert commitを作ります。

git revert <merge commitのcommit hash>

追記

よく考えたらmerge commitをrevertするので、-mの指定がいりますね。

$git log --oneline --graph * 341f0a3 (HEAD -> master) Merge branch 'sub' |\ | * 20402e5 (sub) aaa * | 95da940 bbb |/ * 5fd6fa2 init $git revert 341f0a3 error: commit 341f0a3e4cd2cf429ebfba3a742543da629ae0c8 is a merge but no -m option was given. fatal: revert failed $git show 341f0a3 commit 341f0a3e4cd2cf429ebfba3a742543da629ae0c8 (HEAD -> master) Merge: 95da940 20402e5 Author: yumetodo <yume-wikijp@live.jp> Date: Sat Oct 31 18:02:14 2020 +0900 Merge branch 'sub' diff --cc test.txt index fde1698,3bd1f0e..a5e2a02 --- a/test.txt +++ b/test.txt @@@ -1,2 -1,2 +1,3 @@@ foo +hoge + bar $git revert -m 1 341f0a3 [master 2c49898] Revert "Merge branch 'sub'" 1 file changed, 1 deletion(-)

merge commitをgit showしたときに出るMerge: 95da940 20402e5のような部分で、-m 1なら95da940のほうが残すほう、-m 2なら20402e5のほうが残すほうですね。

投稿2020/10/28 00:36

編集2020/10/31 09:07
yumetodo

総合スコア5852

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yutaro_0529

2020/10/30 15:43

ご回答ありがとうございます! git revert 早速使用し、コミットしていたコードを元の状態に戻せました。 そのあと、コミット前に戻すことは出来たのですが、 そのままコードが残っている状態でした。 その場合、1つ1つコードを削除しなければならないのでしょうか!?
yumetodo

2020/10/31 08:59

> そのままコードが残っている状態でした。 通常発生しない事象ですので、どういうことかわかりません。もうすこし言いたいことを詳しく説明してください。ついでに現状のgit statusの結果も貼ってください。
yumetodo

2020/10/31 09:08

あと私がど忘れしてgit revertにつける`-m`のオプションのことを忘れていました。この点はどうなさいましたか?
yutaro_0529

2020/11/02 15:32

ご回答いただきありがとうございます!! git revert -mは使っていませんでした。 教えて頂きありがとうございます!! gitの操作についていけず、アプリの作り直しをしてしまいました。。。
yumetodo

2020/11/03 10:28

えええ・・・、じゃあ「git revert 早速使用し、コミットしていたコードを元の状態に戻せました。」とは一体・・・。
yutaro_0529

2020/11/03 14:36

また教えて頂きありがとうございます!! 私が勘違いしていて、 コミットしたものを一旦元に戻すことは出来たのですが、 新しくコードを実装し、コミットするとまた元のエラーが出ている状態に戻ってしまいました!! 学習サイトありがとうございます!! とても嬉しいです!!なんとか修行して取得します!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問