2012-01-05 11 views
3

私のチームの開発者が間違ったリモートリポジトリに変更をコミットしました。私は彼がリモートリポジトリ上のこのリポジトリにプッシュしたものを削除したい。私はローカルで何かを変えたくない。ローカルリポジトリを変更せずにリモートブランチのgit pushを元に戻しますか?

そこでどのようにすることができます:

  1. リストリモートリポジトリのブランチ上のコミット私は削除する必要がプッシュされていることをコミットしている見ることができるように。

  2. リモートリポジトリブランチ上のこれらのコミットをそれぞれ削除して、変更をプッシュする前にコミットに戻ることができます。

私は「削除」が正しいプロセスであるか、「元に戻す」を意味するものではなく、最終的に、私はリモートリポジトリのブランチが戻って、彼は彼をプッシュする前にそれがあった場所にする必要がありますされている場合かどうかわからないです変更。

答えて

5

その枝は、サーバーから何を得る検査

git tag original-master origin/master 

で最後だったマーク:あなたのタグはまだそれはどこだと理にかなっている場合

git fetch 

git log --all --graph 

または

gitk --all 

リモートブランチは、強制的にそれを押す必要があります:

マスターとしてコミットそれは別のコミットなら0
git push -f origin original-master:master 

、プッシュ:

git push -f origin <some SHA1>:master 

をクリーンアップ:

git tag -d original-master 

更新トラッキング枝を修正するので:

git fetch 

これは、 "master"が問題のブランチであることを前提としています。別のものであれば、 "master"を適切なブランチ名に置き換えます。

関連する問題