2

貢献したい github プロジェクトのプルリクエスト対応パッケージにいくつかのコミットを押しつぶそうとしていますが、使用してgit rebase -i masterも期待するオプションが得られません (StackOverflow および他の場所での読み取りに基づく)。コミットをスカッシュしようとしたのは初めてなので、おそらく何かが足りないだけです。

プロジェクトの歴史は、次のようなものです。

# On branch master
git pull origin master
git fetch upstream
git rebase upstream/master
git checkout -b feature
git commit -m "some work"
git commit -m "a little more work"
git commit -m "finishing up feature"
git checkout master
git pull origin master
git fetch upstream
git rebase upstream/master
git checkout feature

この時点で、オリジン/マスターまたはアップストリーム/マスターに変更はありません。そのため、機能ブランチをリベースしなくても、オリジンとアップストリームの両方に線形です。するとgit rebase -i master、ポップアップするエディターに私のコミットがリストされず、完全に空白になり、リベースの出力はSuccessfully rebased and updated refs/heads/feature.

私は私が使用できることを知っています

git checkout master
git merge --squash feature

しかし、そうするとすべての履歴が失われるというのが私の理解です。

私が望むことを達成する別の方法はありますか、それとも明らかなものを見逃しているだけですか?

アップデート

私が期待しているのは、機能ブランチで作成したコミットが一覧表示されたエディターで、選択するものとスカッシュするものを選択できます。実際に表示されるのは空のエディターです。これは、現在のブランチがマスター ブランチに対して線形であるため、何もリベースする必要がなく、エディターにコミットが表示されないのではないかと考えさせられます (ただし、上記の成功メッセージの代わりに、「nothing to rebase」のようなメッセージ)

4

1 に答える 1

0

コメントに記載されているように、問題はgit rebase -i masterコマンドではなく、使用可能なコミットを適切に表示するために git からの入力を処理していなかったエディターにありました。

別のエディターに変更すると、問題が解決しました。

于 2012-12-10T16:57:33.700 に答える