web-dev-qa-db-ja.com

GithubおよびBitbucketでGitからコミットを削除する方法

私の.gitignoreファイルにあったプロジェクトDjangoプロジェクトの.ideaディレクトリからファイルを誤ってプッシュしました。プロジェクトで作業していると、彼は自分の.ideaファイルに影響を与えずに私の変更を引き出すことができません。他のSO最後に行った適切なコミットをプッシュしたコマンド、およびその後のすべてがmasterブランチから削除されました。

コミット履歴:

94ca48e

55fab05

3813803

94ca48eと55fab05を削除します。 3813803を最新のコミットにすることができるコマンドを一度見つけたことがあり、そのコミット後のリモートリポジトリ内のすべてが削除されますが、どこにも見つかりません。

15
JBT

git reset --hard 3813803を使用します。これは元に戻せず、ローカルでもリモートでも機能します。

git Push --force Origin masterを使用したリモートプッシュの場合

Atlassian here によるgit docuをご覧ください。

そこからも引用させてください:

リバートはパブリックコミットを安全に元に戻すように設計されていますが、git resetはローカルの変更を元に戻すように設計されています。明確な目標のため、2つのコマンドの実装方法は異なります。リセットすると変更セットが完全に削除されますが、元に戻すと元の変更セットが維持され、新しいコミットを使用して元に戻すことができます。

ただし、完全な削除を要求しているため、git resetがここで使用されます。

27
harmonica141