Pertanyaan Bagaimana cara menghapus komit di GitHub?


Saya "tanpa sengaja" mendorong komitmen ke GitHub.

Apakah mungkin menghapus komit ini?

Saya ingin mengembalikan repositori GitHub saya seperti sebelum komit ini.


1404
2018-01-15 23:20


asal


Jawaban:


catatan: silakan lihat alternatif untuk git rebase -i di komentar di bawah ini—

git reset --soft HEAD^

Pertama, hapus komit pada repositori lokal Anda. Anda dapat melakukan ini menggunakan git rebase -i. Misalnya, jika itu adalah komitmen terakhir Anda, Anda dapat melakukannya git rebase -i HEAD~2 dan hapus baris kedua di dalam jendela editor yang muncul.

Kemudian, paksa tekan ke GitHub dengan menggunakan git push origin +branchName

Lihat Git Magic Bab 5: Pelajaran Sejarah - Dan Kemudian Beberapa untuk informasi lebih lanjut (mis. jika Anda ingin menghapus commit lama).

Oh, dan jika pohon kerja Anda kotor, Anda harus melakukan git stash pertama, dan kemudian a git stash apply setelah.


1016
2018-01-15 23:24



git push -f origin HEAD^:master

Itu harus "membatalkan" dorongan.


853
2018-01-16 00:11



Untuk mudah kembali jika itu hanya kesalahan (mungkin Anda bercabang repo, kemudian akhirnya mendorong ke yang asli bukan ke yang baru) inilah kemungkinan lain:

git reset --hard 71c27777543ccfcb0376dcdd8f6777df055ef479

Jelas menukar nomor itu untuk jumlah komit yang ingin Anda kembalikan.

Semuanya sejak saat itu akan dihapus setelah Anda menekan lagi. Untuk melakukan itu, langkah selanjutnya adalah:

git push --force

293
2018-04-21 20:26



  1. git log untuk mengetahui komitmen yang ingin Anda kembalikan

  2. git push origin +7f6d03:master sedangkan 7f6d03 adalah komit sebelum komit yang salah dorong. + adalah untuk force push

Dan begitulah.

Sini adalah panduan yang sangat bagus yang memecahkan masalah Anda, mudah dan sederhana!


70
2018-02-09 11:58



Anda harus membersihkan cache untuk menghapusnya sepenuhnya. halaman bantuan ini dari git akan membantu Anda. (itu membantu saya) http://help.github.com/remove-sensitive-data/


34
2017-07-27 22:38



Jika Anda ingin menyimpan perubahan komit setelah penghapusan:

Perhatikan bahwa solusi ini berfungsi jika komitmen untuk dihapus adalah yang terakhir berkomitmen.


1 - Salin referensi commit yang Anda sukai untuk kembali dari log:

git log

2 - Reset git ke referensi commit:

 git reset <commit_ref>

3 - Simpan / simpan perubahan lokal dari commit yang salah untuk digunakan nanti setelah mendorong ke remote:

 git stash

4 - Dorong perubahan ke repositori jarak jauh, (-f atau --force):

git push -f

5 - Dapatkan kembali perubahan yang disimpan ke repositori lokal:

git stash apply

7 - Jika Anda memiliki file yang tidak diacak / baru dalam perubahan, Anda perlu menambahkannya ke git sebelum melakukan:

git add .

6 - Tambahkan perubahan ekstra apa pun yang Anda perlukan, lalu lakukan commit file yang dibutuhkan, (atau gunakan dot '.' Daripada menyatakan setiap nama file, untuk mengkomit semua file dalam repositori lokal:

git commit -m "<new_commit_message>" <file1> <file2> ...

atau

git commit -m "<new_commit_message>" .

31
2018-06-07 14:44



Menggunakan git revert untuk mengembalikan dorongan Anda.

git-revert - Kembalikan beberapa commit yang ada

git revert [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit>...
git revert --continue
git revert --quit
git revert --abort

Kembalikan perubahan yang terkait dengan tambalan, dan rekam beberapa komit baru yang merekamnya. Ini mengharuskan pohon kerja Anda menjadi bersih (tidak ada modifikasi dari komit HEAD).


24
2017-07-17 08:21



1. git reset HEAD^ --hard
2. git push origin -f

Ini bekerja untukku.


19
2017-08-10 08:41



Untuk menghapus commit dari repositori jarak jauh:

 git push -f origin last_known_good_commit:branch_name

Untuk menghapus komit dari repositori lokal Anda:

git reset --hard HEAD~1

link


13
2018-03-07 01:27



Hapus komitmen terbaru, menjaga pekerjaan yang telah Anda lakukan:

git reset --soft HEAD~1

Hapus komit terbaru, menghancurkan pekerjaan yang telah Anda lakukan:

git reset --hard HEAD~1

10
2017-11-15 12:39