Dengan asumsi bahwa cabang Anda dipanggil di mastersini dan dari jarak jauh, dan bahwa kendali jarak jauh originAnda disebut dapat Anda lakukan:
git reset --hard <commit-hash>
git push -f origin master
Namun, Anda harus menghindari melakukan ini jika ada orang lain yang bekerja dengan repositori jarak jauh Anda dan telah menarik perubahan Anda. Dalam hal ini, akan lebih baik untuk mengembalikan komit yang tidak Anda inginkan, kemudian dorong seperti biasa.
Pembaruan: Anda telah menjelaskan di bawah ini bahwa orang lain telah menarik perubahan yang Anda dorong, jadi itu lebih baik untuk membuat komit baru yang mengembalikan semua perubahan itu . Ada penjelasan yang bagus tentang pilihan Anda untuk melakukan ini dalam jawaban ini dari Jakub Narębski . Yang mana yang paling nyaman tergantung pada berapa banyak komit yang ingin Anda kembalikan, dan metode mana yang paling masuk akal bagi Anda.
Karena dari pertanyaan Anda, sudah jelas bahwa Anda sudah terbiasa git reset --hardmengatur ulang mastercabang Anda, Anda mungkin perlu mulai dengan menggunakan git reset --hard ORIG_HEADuntuk memindahkan cabang Anda kembali ke tempat sebelumnya. (Seperti biasa dengan git reset --hard, pastikan itugit status bersih, bahwa Anda berada di cabang kanan dan bahwa Anda sadar git reflogsebagai alat untuk memulihkan komit yang tampaknya hilang.) Anda juga harus memeriksa ORIG_HEADtitik - titik ke komit yang tepat, dengan git show ORIG_HEAD.
Penyelesaian masalah:
Jika Anda mendapatkan pesan seperti " ! [Remote ditolak] a60f7d85 -> master (kait pra-terima ditolak) "
maka Anda harus mengizinkan penulisan ulang riwayat cabang untuk cabang tertentu. Dalam BitBucket misalnya dikatakan "Menulis ulang sejarah cabang tidak diperbolehkan". Ada kotak centang bernama Allow rewriting branch historyyang harus Anda periksa.
origin/masterbelum ditarik dan didorong oleh pengguna lain? Mengubah riwayat repositori publik (yaitu non-lokal) adalah sesuatu yang ingin Anda hindari setiap saat.