1

私は間違いを犯したと思います。いくつかのコミットを削除したかったのでgit rebase -i、最後のコミットを使用して削除しました。しかし、その後、作業ディレクトリとステージディレクトリで行ったすべての変更が削除されました。どうしてですか?古いコミットをいくつか削除すれば、この問題は発生しなかったでしょう。最後のコミットを削除し、変更を作業ディレクトリに保持する方法はありますか?

git rebase -iところで、との使用の違いは何git rebase --onto <branch name>~<first commit number to remove> <branch name>~<first commit to be kept> <branch name>ですか?

4

1 に答える 1

1

git rebase既知のファイルにコミットされていない変更がある場合、まったく起動しません。次のエラーで失敗します。

Cannot rebase: Your index contains uncommitted changes.

そのエラーのいくつかのバリエーションは 2007 年から出回っていますgit rebase -i

つまり、あなたの質問はgit rebase -iのデフォルトに関連しています。<remote>/<branch>引数がない場合、デフォルトでチェックアウトされたブランチになり、チェックアウトしたブランチの「上流」になるように構成されたものに対してリベースしようとします。ブランチのアップストリーム リポジトリとブランチは次のコマンドで確認できます。

git config branch.<branch_name>.remote
git config branch.<branch_name>.merge
于 2013-08-23T19:49:17.063 に答える