Saya bekerja di sebuah cabang (yaitu design
) dan saya telah membuat sejumlah perubahan, tetapi saya harus membuang semuanya dan mengatur ulang agar sesuai dengan versi repositori. Saya pikir git checkout design
akan melakukannya, tetapi itu hanya memberi tahu saya bahwa saya sudah di cabang design
dan bahwa saya memiliki 3 file yang dimodifikasi.
Bagaimana cara membuang perubahan tersebut dan mendapatkan cabang seperti sekarang di server jarak jauh?
git reset --hard HEAD^
git reset --hard HEAD^
harus menjadi jawaban yang diterima. OP tidak bertanya tentang cabang lain ...sumber
git rm [branch name].diff
Jika Anda tidak ingin ada perubahan apa pun
design
dan pasti ingin mencocokkan cabang jarak jauh, Anda juga dapat menghapus cabang dan membuatnya kembali:sumber
@Will, git immersion adalah tutorial git yang sangat bagus dan sederhana. ini akan menunjukkan kepada Anda cara membatalkan perubahan untuk kasus berikut: tidak bertahap, bertahap, dan berkomitmen. laboratorium 14-18
sumber
Ruby
dipasang .. yang sepertinya tidak selalu menjadi pilihanSaat Anda ingin membuang perubahan di cabang lokal Anda, Anda dapat menyimpan perubahan ini menggunakan perintah git stash.
git simpanan simpan "some_name"
Perubahan Anda akan disimpan dan Anda dapat mengambilnya nanti, jika Anda mau atau Anda dapat menghapusnya. Setelah melakukan ini, cabang Anda tidak akan memiliki kode yang tidak terikat dan Anda dapat menarik kode terbaru dari cabang utama Anda menggunakan git pull.
sumber
Di root sumber:
git reset ./ HEAD <--un-stage any staged changes git checkout ./ <--discard any unstaged changes
sumber
Metode REVERSIBLE untuk Membuang Semua Perubahan:
Saya menemukan pertanyaan ini setelah setelah melakukan penggabungan dan melupakan untuk checkout mengembangkan segera setelah itu. Anda dapat menebaknya: Saya mulai memodifikasi beberapa file langsung di master . D'Oh! Karena situasi saya hampir tidak unik (kita semua pernah melakukannya, bukan; ->), saya akan menawarkan cara reversibel yang biasa saya gunakan untuk membuang semua perubahan agar master terlihat seperti berkembang lagi.
Setelah melakukan a
git diff
untuk melihat file apa yang diubah dan menilai ruang lingkup kesalahan saya, saya mengeksekusi:Setelah terlebih dahulu menyembunyikan semua perubahan, selanjutnya mereka dibersihkan. Semua perubahan yang dibuat pada file karena kesalahan pada master hilang dan paritas dipulihkan.
Katakanlah sekarang saya ingin memulihkan perubahan itu. Aku bisa melakukan ini. Langkah pertama adalah menemukan hash dari simpanan yang baru saja saya bersihkan / jatuhkan:
Setelah mempelajari hash, saya berhasil memulihkan perubahan yang tidak dilakukan dengan:
Saya tidak benar-benar ingin memulihkan perubahan itu, hanya ingin memvalidasi saya bisa mendapatkannya kembali, jadi saya menghapusnya lagi.
Pilihan lainnya adalah menerapkan simpanan ke cabang yang berbeda , daripada menghapus perubahan. Jadi dalam hal menghapus perubahan yang dibuat dari bekerja di cabang yang salah,
stash
memberi Anda banyak fleksibilitas untuk memulihkan dari boo-boo Anda.Anyhoo, jika Anda menginginkan cara yang dapat dibalik untuk menghapus perubahan pada cabang, hal tersebut di atas adalah cara yang kurang berbahaya dalam kasus penggunaan ini.
sumber
git checkout -f
Ini cukup untuk pertanyaan Anda. Hanya masalahnya, setelah selesai, selesai. Tidak ada pengurungan.
sumber