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

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

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

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

1回答

341閲覧

git rebase の使い方

退会済みユーザー

退会済みユーザー

総合スコア0

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

0グッド

0クリップ

投稿2019/04/24 04:00

編集2019/04/24 05:46

過去に追加した機能がステージングでまだ動作確認が終わらず
それ以降追加された機能が本番デプロイできないので
いったんその機能だけを無効にしたいと思っています

git rebase というのを使えばできるみたいなのですが使い方がわかりません

git log でコミットを確認して
git rebase -i xxxxxxxxx で消したいコミット番号を指定したところ
vi の画面がでてきてそこには確かに指定したコミットはでてきていないので
そのまま Shift+Z+Zで保存して
'git log' をしたのですがコミット履歴には残っていてファイルも変更されていません

rebase の画面に

Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # x, exec = run command (the rest of the line) using shell # d, drop = remove commit

というのがあったのでもう1度実行して
ためしに d をおしてみると1行目の関係ないコミットが消えてしまい
あわてて :q! をしたのですが
Successfully rebased and updated
とでてしまって conflict したような状態になってしまいました

both modified になってるファイルをコミットして both-modified がなくなったにもかかわらず
(シェルのプロンプトにブランチ名を表示する機能がついてるのですが)
ブランチの状態が |rebase というのがついたまま消えず stash や checkout ができません

何がどうなってるのかさっぱりわからないので
いったん rebase 前の状態に戻す方法と
再度 rebase のやり方を教えていただけないでしょうか

よろしくお願いいたします

追記:

rebase 前には戻せたのですがやはり rebase の使い方がよくわかりません

git rebase -i xxxxxxxxxx

で1つ前のコミットを指定すると消したいコミットがリストにでてくるようになったのですが
その行で d を押しても何も起こりません

その後カーソルキーを右に動かそうとすると1文字だけ消えて
下に動かそうとすると次の無関係のブランチごと2行1度に消えてしまいます

気にせず保存してしまっていいのでしょうか…

しかも :q! でキャンセルしようとしても毎回
Successfully rebased and updated
となってしまうのですが毎回何か変更がされてしまっているのでしょうか

vi の環境の問題なのでしょうか…

使ってるものは
macOS 10.13.6
iterm2 3.2.9
zsh 5.6.2 (x86_64-apple-darwin17.7.0)
VIM - Vi IMproved 8.0
です

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

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

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

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

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

guest

回答1

0

ベストアンサー

いったん rebase 前の状態に戻す方法と
再度 rebase のやり方を教えていただけないでしょうか

まずgit rebase --abortで現在作業中のrebase内容を中断して、rebase作業に入る前の状態に戻してください。
次に、git rebase -i 《消したいコミットIDの一つ前のID》を実行してください。
rebaseコマンド実行後に表示されるテキストエディタで、消したいコミットの行頭をdに変更すれば、そのコミットを除いた状態にすることができます。

投稿2019/04/24 04:11

ku__ra__ge

総合スコア4524

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

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

退会済みユーザー

退会済みユーザー

2019/04/24 04:19

回答ありがとうございます git rebase --abort で rebase という表示は消えたのですが git pull を行うと merge するかきかれる vi の画面がでてきてしまいます さっき1度 both-modified を消すためにコミットしてしまったのが原因なのかもしれないですが そのコミット履歴が git log にみあたりません rebase 前に戻すにはどうすればいいのでしょうか
退会済みユーザー

退会済みユーザー

2019/04/24 06:23

ありがとうございます できたみたいです コマンドを叩いた時点で消したいコミットを指定するんだと思ってたので 《消したいコミットIDの一つ前のID》 を教えていただいてありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問