私はgitリポジトリをWindowsのphpstormに接続しています。いくつかの変更セットをコミットし、それらを「中央レポ」にプッシュしました。この後、さらにいくつかのコミットを行いました。中央リポジトリにプッシュされていないこれらのコミットはもう必要ありません。セントラルリポジトリ(Origin)と同じになるように作業コピーをクリーンアップするにはどうすればよいですか?
git reset --hard remotes/Origin/HEAD
git reset --hard remotes/Origin/YOUR/BRANCH
より良い /HEAD
これは表示されないためです。
$ git status
On branch MY/BRANCH
Your branch and 'Origin/MY/BRANCH' have diverged,
and have 1 and 1 different commit each, respectively.
それについて確信があり、ローカルncommittedの変更がない場合:
git reset --hard Origin/master
ここで、Origin/master
はプッシュしたブランチです。
Ref-logには、ガベージコレクションが期限切れになるまで、元に戻されたビットが含まれています。元に戻すには、
git reset --hard HEAD@{1}
ローカルコミットを元に戻すには
git reset HEAD~N
nはコミット数を元に戻すために使用されます。例:
ローカルからの単一のコミットを元に戻す必要がある場合は、使用できます
git reset HEAD~1
またはgit reset HEAD ^
私の理解では、中央リポジトリにプッシュしたコミットを作成し、その後さらにコミットを作成しましたが、これらはローカルに存在します。これらはすべて中央レポをプッシュしませんでした。
ローカルコミットを削除/元に戻すには;
git reset HEAD~{number_of_commit}
単純に、git log
コマンドでプロンプトを表示し、コミットのリストを取得します。ご覧ください、今作成したコミットの数と、元に戻す必要のあるコミットの数。
たとえば、最後の2つのコミットをremove.revertしてからヒットする必要があります
git reset HEAD~2
セントラルリポジトリでローカルリポジトリをリセットする別の方法があります。ただし、この場合、ローカルコミットは削除され、他のユーザーが中央レポジトリにプッシュコミットすると、レポジトリはそれで更新されます。
コマンドは次のとおりです。
git reset --hard remotes/Origin/HEAD