1

私はgithubから私のプロジェクトにいくつかのプロジェクトを複製しました。すべてうまくいきました。満足しています。

しかし、いくつかの git プルの後、プロジェクトで上流プロジェクトの新しいコミットと競合が発生します。

以前のチェックアウトにロールバックしたいのですが、プロジェクトの以前の安定したチェックアウトがわかりません。

どうすればそれを知り、以前の安定した (私にとって) プロジェクトのチェックアウトにロールバックできますか? アップストリームリポジトリとの競合を修正するためのより正しい方法であると理解していますが、問題を修正する時間を得るために、以前のバージョンにロールバックする必要がある場合があります。

4

3 に答える 3

2

実行できるコマンド/スクリプトがあり、それが「安定点」(つまり、機能していない現在の状態とは対照的に機能している何か) を示す場合は、git bisectコマンドを検討できます。「 git bisect の使い方
」を参照してください。

これは、「機能していた」最後のコミットを分離するのに役立ちます。

于 2012-04-23T06:59:44.190 に答える
1

git reflog操作の順序を教えてくれるはずです。最新のものが最初です。最初のプル/マージの前に操作されたコミット ID を探します。checkoutまたはreset --hardそれに。

于 2012-04-23T07:09:20.500 に答える
0

すでにマージをコミットしましたか? そうでない場合は、git reset --hardを発行する前の状態に戻りますgit pull。それ以外の場合、git reset --hard HEAD^(マージが最後のコミットであった場合)トリックを実行します.gitはデフォルトで常にマージコミットの最初の親、つまりあなたのブランチを選択するからです。疑わしい場合は、たとえばgitk、状況を調べてブランチの最後のコミットを見つけ、その SHA1 ハッシュをコピーしてそれに戻すためにいつでも使用できます。

于 2012-04-23T07:04:38.213 に答える