Bagaimana cara menghapus komit keluar tak terdorong di Visual Studio?


115

Saya tidak sengaja mendorong perubahan bertahap di cabang baru di Visual Studio 2017 ke repositori lokal saya. Itu belum didorong ke repositori jarak jauh. Saya ingin menyingkirkannya tetapi tidak dapat menemukan cara untuk melakukan ini. Saya mengubah basis dari cabang master lokal ke cabang baru. Kemudian saya menghapus cabang baru. Tapi Komitmen Keluar masih menunjukkannya. Bagaimana cara menghapusnya atau mengembalikannya?

masukkan deskripsi gambar di sini


Terima kasih untuk pertanyaan ini, saya punya pertanyaan yang sama
Imran Rizvi

Jawaban:


179

Buka tab riwayat di Penjelajah Tim dari ubin Cabang (klik kanan cabang Anda). Kemudian di histori, klik kanan komit sebelum yang tidak ingin Anda dorong, pilih Reset. Itu akan memindahkan cabang kembali ke komit itu dan harus menyingkirkan komit ekstra yang Anda buat. Untuk mengatur ulang sebelum komit yang diberikan, Anda harus memilih induknya.

Bergantung pada apa yang ingin Anda lakukan dengan perubahan, pilih keras , yang akan menyingkirkannya secara lokal. Atau pilih lunak yang akan membatalkan komit tetapi akan meninggalkan direktori kerja Anda dengan perubahan dalam komit yang Anda buang.


22
Layak ditebalkan pada bagian di mana ** Anda harus memilih RESET pada PARENT dari komit yang kacau ** - VS2017 yang aneh, tepat setelah Anda melakukan komit, menawarkan Anda opsi menu yang melakukan reset targetd pada komit Anda baru saja melakukannya (tidak ada operasi) - Saya menghabiskan beberapa menit sampai saya menemukan posting Anda dan menyadari bahwa saya harus Setel ulang [Untuk] perintah orang tua .. Opsi menu "Reset" sedikit kata-katanya - terdengar seperti itu akan reset komit tertentu == menyiratkan itu harus digunakan pada komit itu. Jika itu Atur Ulang Untuk saya rasa saya akan memahaminya lebih cepat
Caius Jard

1
(@JH) Terima kasih atas jawabannya. .. atCJ Terima kasih atas komentarnya. atJH Terima kasih telah berani-berani bagian itu ... padaSemua orang .... itu bagian saya terjebak pada .... dan maksud saya terjebak. #freedom
granadaCoder

Penamaan ini sejalan dengan cara git memanggil perintah. Jika Anda telah mengedit file, itu akan diatur ulang juga. Jika Anda memiliki file bertahap, file tersebut juga akan disetel ulang. Itulah mengapa ada penyetelan ulang pada komit terbaru juga. Ini disetel ulang ke komit itu.
jessehouwing

1
Berguna untuk mengetahui. Terima kasih atas jawabannya
Rob C

Thanks Alot It Helpssss
Ashish Kamble

70

Saya tidak dapat menemukan satu jawaban bagus pun yang membantu saya menyingkirkan masalah ini.

Katakanlah nama cabang, yang secara tidak sengaja Anda ubah ke, adalah master. Empat langkah sederhana berikut ini terbukti seperti dunia bagi saya:

  1. Pergi ke Cabang
  2. Pilih atau buat cabang selain master
  3. Hapus versi lokal / ruang kerja dari master
  4. Beralih ke master dari remotes/origin

5
Ini adalah jawaban yang berhasil, Anda tidak perlu memaksakanrevert
sojim

2
ini berfungsi, tetapi Anda terhenti ketika Anda hanya ingin beberapa (tidak semua) komit tertentu dari Komitmen Keluar.
Kataria,

1
Baru saja menerima beberapa suara negatif. Komentar akan sangat bagus.
Chaos Legion

1
Bekerja. Solusi bersih, cepat dan sederhana.
Tom Tom

2
OMG TERIMA KASIH! Belum pernah saya meluangkan waktu 45 menit untuk membatalkan perubahan, hingga malam ini. Komentar Anda menyelamatkan hari ini.
PBJ

3

Dengan asumsi Anda telah mendorong perubahan terbaru ke server:

  1. Tutup Visual Studio dan hapus salinan lokal proyek Anda
  2. Buka Visual Studio, buka tab Team Explorer, klik Kelola Koneksi. (steker)
  3. Klik panah tarik-turun di sebelah Kelola Koneksi, Hubungkan ke Proyek
  4. Pilih proyek, konfirmasi jalur lokal, dan klik tombol Hubungkan.

Setelah Anda membuka kembali proyek, komit dan perubahan harus nol.


2

TL; DR:

Gunakan git reset --soft HEAD~di cmd dari folder .sln


Saya menghadapinya hari ini dan kewalahan yang VSCodemenyarankan hal seperti itu, sedangkan kakak laki-laki Visual Studiotidak.

Sebagian besar jawaban sangat membantu; jika saya memiliki lebih banyak komitmen yang dibuat sebelumnya, kehilangan semuanya akan membuat frustrasi. Apalagi jika VSCodedilakukan dalam setengah detik, seharusnya tidak rumit.

Hanya jawaban jessehouwing yang paling mendekati solusi sederhana.


Dengan asumsi komit yang tidak diinginkan adalah yang terakhir terjadi, Berikut adalah cara saya menyelesaikannya:

Pergi ke Team Explorer-> Sync. Di sana Anda akan melihat semua komit. Tekan Actionsdropdown danOpen Command Prompt

contoh yang tidak diinginkan-komit-diselesaikan

Anda akan melihat jendela cmd diminta, di sana tulis git reset --soft HEAD~. Jika ada beberapa komit yang tidak diinginkan, tambahkan jumlah setelah ~(mis. git reset --soft HEAD~5)


(Jika Anda tidak menggunakan git, periksa penggunaan sehari-hari).

Saya berharap ini akan membantu, dan semoga di versi berikutnya tim VS akan menambahkannya


0

Buka tab Team Explorer lalu klik Branches. Di cabang pilih cabang Anda dari remote / origin. Misalnya, Anda ingin mengatur ulang cabang master Anda. Klik kanan di cabang master di remote / origin lalu pilih Reset lalu klik Delete changes. Ini akan mengatur ulang cabang lokal Anda dan menghapus semua perubahan yang dilakukan secara lokal.


0

Cobalah untuk me-rebase cabang master lokal Anda ke cabang master jarak jauh / asal Anda dan selesaikan konflik apa pun dalam prosesnya.


-1

Anda memiliki 2 opsi di sini untuk melakukannya, baik untuk membuang semua komitmen keluar Anda ATAU membatalkan komitmen tertentu ..

1- Buang semua komitmen keluar Anda:

Untuk membuang semua komit keluar Anda Misalnya jika Anda memiliki cabang lokal bernama master dari cabang jarak jauh, Anda dapat:

1- Ubah nama cabang lokal Anda dari master menjadi apa pun sehingga Anda dapat menghapusnya. 2- Hapus cabang yang diganti namanya. 3- buat cabang baru dari master

Jadi sekarang Anda memiliki cabang baru tanpa komitmen Anda ..

2- Batalkan komit khusus: Untuk membatalkan komit tertentu Anda harus mengembalikan yang tidak dibutuhkan dengan:

1- Klik dua kali pada komit yang tidak dibutuhkan. Klik dua kali pada komit yang tidak diperlukan 2- Klik pada kembali Klik pada kembali

Tapi FYI komit yang dikembalikan akan muncul di riwayat komit Anda dengan komit kembali ..

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.