1. ホーム
  2. git

[解決済み] git rebase --continue 変更なし

2022-02-19 21:08:53

質問

2つの機能を持つ2つのブランチがあります。 banch_1branch_2 . branch_2 の機能を使用しています。 branch_1 . を変更しました。 branch_1 をリベースしたい。 branch_2branch_1 から変更を取得します。 branch_1branch_2 .

というわけで、branch_2 でチェックアウトしています。

git checkout branch_2

そしてbranch_1にリベースしようとしています。

git rebase branch_1

その後、2つのファイルで'Merge conflict'が発生しました。そこで、次のように実行します。

git mergetool -t meld

の変更を選択し、そのコンフリクトを解決します。 branch_1 .

ファイルを保存して、ターミナルに行き、次のように入力します。 git status で、git indexに変更がないことを確認します。次に git rebase --continue と表示されます。

No changes - did you forget to use 'git add'? 

のエラーが発生しました。しかし、追加するものは何もないのです と入力します。 git log からのコミットを確認します。 branch_1 からのコミットはありませんが branch_2 .

何が間違っているのか?

どうすればいいですか?

私の理解が正しければ、マージの競合が発生したとき、あなたはすべての変更点を branch_1 からの特定のコミットは branch_2 からの変更と同じになります。 branch_1 .

gitが言っているとき

変更なし - 'git add' を使い忘れたのでしょうか?

は、適用しようとしているコミットがレポに何の変更も加えておらず、したがってそれが存在する理由もないことを告げているのです。

それに対する簡単な解決策は git rebase --skip これは @C-Otto のコメントにあるように、単に "このコミットを無視して次に進みます" という意味です。これは、あなたが現在扱っているコミットをスキップして、それ以降のコミットに移動します。

また、対話型リベース( git rebase -i ) は、まず適用するコミットの一覧を表示し、個々のコミットに対してどうするかというさまざまな選択肢を与えてくれます。この場合、もう関係ないコミットを見つけたら、前もってそれをスキップしておけば、そもそも衝突を見ることはありません。