Saya tidak sengaja membuang perubahan saya pada file di pohon kerja lokal saya melalui checkout git. File tidak dipentaskan saat ini. Apakah mungkin untuk "membatalkan" checkout ini?
Saya tidak sengaja membuang perubahan saya pada file di pohon kerja lokal saya melalui checkout git. File tidak dipentaskan saat ini. Apakah mungkin untuk "membatalkan" checkout ini?
Jawaban:
Saya percaya jika file diubah tetapi belum ditambahkan (dipentaskan), itu murni "pribadi".
Berarti itu tidak dapat dipulihkan oleh GIT jika ditimpa dengan indeks atau versi HEAD (kecuali jika Anda memiliki salinan karya Anda saat ini di suatu tempat). "
Konten "pribadi" adalah satu-satunya yang terlihat di direktori Anda saat ini, tetapi tidak terdaftar dengan cara apa pun di Git.
git checkout --), saya berharap itu dapat membatalkan operasi itu, mungkin melalui reflog. Apakah itu harapan yang salah?
git checkout folders/subfolders/filetetapi tekan enter secara tidak sengaja setelah sampai folderdan kehilangan semua pekerjaan saya. Saya adalah 1cm dari enter pada keyboard saya dan saya sering beralih di antara mesin dengan tata letak keyboard yang berbeda sehingga sering ada 10-15 menit dari jari-jari saya terbiasa dengan posisi baru. Sulit dipercaya pada tahun 2018 bahwa git membuang file-file walaupun dikatakan di dalam buku git bahwa git melakukan hal itu agar tidak kehilangan pekerjaan.
Jika Anda menggunakan IDE "profesional" kemungkinan besar Anda dapat mengembalikan file dari Sejarah lokal. Di Rubymine misalnya, Anda dapat mengeklik kanan file dan menonton riwayat perubahan yang terlepas dari perubahan git, menyelamatkan saya beberapa kali sekarang ^^
Jika Anda bekerja di editor seperti Sublime Text, dan file yang dimaksud masih terbuka, Anda dapat menekan ctrl + z, dan itu akan kembali ke keadaan sebelum git checkout.
Sayangnya perubahan Anda hilang. Modifikasi pribadi Anda hanya ditimpa. Kecuali Anda melakukannya git stashsebelum melakukan checkout ...
Ambillah dari sisi yang lebih cerah: Anda sekarang dapat menerapkan hal-hal yang lebih baik;)
Periksa riwayat lokal di IDE Anda.
Berkembang di OS X? Menggunakan Xcode? Anda mungkin beruntung!
Seperti dijelaskan dalam komentar oleh qungu , OS X memelihara riwayat versi file yang disimpan otomatis, bahkan jika Anda tidak menggunakan mesin waktu .
Jadi, jika Anda telah meledakkan perubahan lokal Anda yang tidak terencana dengan ceroboh git checkout ., inilah cara Anda mungkin dapat memulihkan semua pekerjaan Anda.
Jika seseorang menemukan utas ini telah menghancurkan beberapa pekerjaan di XCode, ada cara untuk mendapatkan riwayat Hemat Otomatis. XCode sendiri tidak memiliki entri menu untuk melihat histori AutoSave, tetapi ia menyimpannya. Jika Anda membuka file yang dimaksud di TextEdit, Anda dapat mengembalikan dan melihat riwayat AutoSave di bawah File> Revert.
Yang luar biasa, dan pulih sekitar satu hari kerja untuk saya, kemarin.
Anda mungkin bertanya, "Mengapa tidak git UI command-line, VCS utama yang digunakan untuk rekayasa perangkat lunak di2016 2017 20182019, setidaknya buat cadangan file sebelum hanya membuangnya? Seperti, Anda tahu, alat perangkat lunak yang ditulis dengan baik selama sekitar tiga dekade terakhir. "
Atau mungkin Anda bertanya, "Mengapa fitur sejarah file yang luar biasa ini dapat diakses di TextEdit tetapi tidak Xcode di mana saya benar-benar membutuhkannya?"
... dan keduanya, saya pikir, akan memberi tahu Anda cukup banyak tentang industri kami. Atau mungkin Anda akan pergi dan memperbaiki alat-alat itu. Yang mana yang super.
Modelsayangnya
Dalam VSCODE ctrl + z (batalkan) bekerja untuk saya
Saya melakukan git checkout .alih - alih git add .dan semua perubahan file saya hilang.
Tapi Sekarang menggunakan command + zdi mac saya, memulihkan perubahan dan menyimpan nada kerja untuk saya.
Jika Anda pernah menyembunyikan perubahan sebelumnya (misalnya, sebelum rebasing), ini kemungkinan akan membantu
Bagaimana memulihkan simpanan yang dijatuhkan di Git?
bahkan jika Anda sudah 'menyimpan pop'ed perubahan.
Penyelamat yang efektif untuk situasi semacam ini adalah Time Machine (OS X) atau sistem cadangan berbasis waktu yang serupa. Ini menyelamatkan saya beberapa kali karena saya dapat kembali dan mengembalikan hanya satu file itu.
Saya baru saja mengalami itu pada saya, saya memeriksa seluruh folder yang berisi jam kerja! Untungnya saya menemukan bahwa Netbeans IDE saya menyimpan sejarah setiap file, yang memungkinkan saya untuk memulihkan 99% dari hal-hal itu walaupun saya perlu memperbaiki beberapa hal secara manual.
Saya biasanya memiliki semua pekerjaan saya di folder dropbox. Ini memastikan saya bahwa saya akan memiliki folder saat ini tersedia di luar mesin lokal saya dan Github. Saya pikir ini langkah saya yang lain untuk menjamin "kontrol versi" selain git. Anda dapat mengikuti ini untuk mengembalikan file Anda ke versi file dropbox Anda sebelumnya
Semoga ini membantu.
Secara teknis ya. Tetapi hanya pada contoh tertentu. Misalnya, jika Anda memiliki halaman kode dan menekan git checkout, dan Anda menyadari bahwa Anda secara tidak sengaja memeriksa halaman yang salah atau sesuatu. Buka halaman dan klik undo. (bagi saya, perintah + z), dan itu akan kembali ke posisi Anda sebelumnya sebelum Anda menekan checkout git tua yang baik.
Ini tidak akan berfungsi jika halaman Anda telah ditutup, dan kemudian Anda menekan checkout git. Ini hanya berfungsi jika halaman kode yang sebenarnya terbuka
Jika Anda bekerja dengan / terminal cmd cepat terbuka, dan digunakan setiap perintah git yang akan menunjukkan perubahan luar area stage ( diff, add -p, checkout -p, dll), dan belum menutup / terminal cmd cepat karena, Anda akan menemukan perubahan tidak bertahap masih tersedia jika Anda menggulir ke tempat Anda menjalankan perintah-perintah git tersebut.
Bung,
katakanlah Anda adalah pria yang sangat beruntung seperti saya, kembali ke editor Anda dan melakukan undo (perintah + Z untuk mac), Anda akan melihat konten Anda yang hilang di file. Semoga ini bisa membantu Anda. Tentu saja, ini hanya akan berfungsi untuk file yang ada.
Mungkin perubahan Anda tidak hilang. Periksa "git reflog"
Saya mengutip artikel di bawah ini:
"Pada dasarnya setiap tindakan yang Anda lakukan di dalam Git di mana data disimpan, Anda dapat menemukannya di dalam reflog. Git berusaha sangat keras untuk tidak kehilangan data Anda, jadi jika karena alasan tertentu Anda pikir itu memiliki, kemungkinan Anda dapat menggalinya menggunakan git reflog "
Lihat detail:
http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html
git reflogsini, saya menemukan jawaban ini ketika saya sedang mencari untuk membatalkan git checkout HEAD .- saya bermaksud mengetik git reset HEAD .- Saya baru saja melakukan 'git reset --soft HEAD ~ 1' dan tidak tahu tentang git refloghal itu bisa mendapatkan kembali pekerjaan yang telah saya lakukan :)