52

私はプロジェクトに取り組み始め、オリジンマスターにプッシュしたいくつかの不要なコミットを行いました。プルリクエストを実行しようとすると、Githubは以前のすべてのコミットをコミットしたいと考えています。

私の質問は、不要なコミットを削除し、コミットしたい変更をコミットして、マスターと最新の状態にするにはどうすればよいですか?

4

2 に答える 2

34

あなたのオリジンは、プルリクエストもやりたいプロジェクトのあなた自身のフォークだと思いますか?

(ヘッドをリセットして) 履歴を変更するため、 --force フラグを使用してプッシュする必要があります。を使用して、最後に有効なコミットのハッシュを見つけますgit log

今すぐ実行

git reset SHA

これにより、頭がそのshaに変わり、最後の適切なコミット以降のファイルの変更が保持され、インデックスもリセットされます。

これで、コードを変更して、必要なコミットを行うことができます。ただしgit push --force、リポジトリの履歴を変更したため、やらなければなりません。つまり、あなたのリポジトリをフォークした人は、あなたから変更を取得できなくなります。ただし、アップストリームに対してプル リクエストを実行することはできます。

于 2012-01-24T17:56:13.530 に答える
0

git gui を使用している場合は、git gui に移動してブランチ履歴を視覚化します。(次のステップを実行する前に、プッシュするローカル変更のバックアップを取ります) ブランチをマスターにリセットするポイントまで右クリックし、[リセット] をクリックします。リセット後、コマンド ラインで git push -f と入力します。ブランチで必要な変更を行い、もう一度 commit n push します。ここでプル リクエストを作成すると、ブランチのリセット後に新しいコミットのみが作成されます。

于 2013-01-24T04:32:19.653 に答える