1

だから私はGitを使い始めており、何か間違ったことをしているような気がします。

フォークの特定のコミットにロールバックして、コミットのすべての履歴とその時点までの変更を消去しようとしています。私はこの辺りで提案されたものをすべて試しましたが、違いはありませんでした。プロジェクトにプルリクエストを作成する必要がありますが、これには、作成したすべてのコミットと、大量のマージコミットが含まれます。それに引っ張る他の誰もが私ほど多くのコミットを持っていないので、私は何か間違ったことをしていると信じています。

私が元に戻したい唯一の本当の理由は、私が作成したWIPコミットがあり、リクエストに含めたくないからです。その前にクリーンを開始したいと思います。

前もって感謝します。

4

2 に答える 2

0

を使用git reset --hardして、必要なところまで戻り、コミットして、最後に新しいバージョンをプッシュアップします。--force(リモートブランチを上書きするためにプッシュするときは、フラグを使用する必要があります。)

ただし、誰かがあなたが押し上げたブランチで実際に何かをした場合、それを上書きすると、解決すべき独自の問題が残るため、これを行う習慣をつけないようにしてください。

于 2012-04-25T03:13:01.927 に答える
0

git reset --hard <commit_id>あなたがやりたいことをするために働きます。シェルアクセスがない場合(つまり、githubリポジトリなど)、クライアントボックスで同じことを行ってgit push -fから、プッシュを強制します。通常、宛先の現在のHEADが新しいHEADの祖先でない場合、プッシュは失敗します。

ただし、これを行う場合は、古いHEADのクローンを作成したりプルしたりした人は、非常に混乱することに注意してください。将来のプルはマージの失敗で死に、永遠にあなたを憎むでしょう。履歴の書き換えは常に最後の手段である必要があります。

于 2012-04-25T03:15:12.993 に答える