Git - menghapus beberapa file secara lokal, bagaimana cara mendapatkannya dari repositori jarak jauh


110

Saya telah menghapus beberapa file di PC saya, bagaimana cara mendownloadnya lagi?

Pull berkata: "Sudah up-to-date".


1
Anda tidak perlu "mendownloadnya lagi", karena semua riwayat repositori ada secara lokal saat Anda menggunakan Git.
— cdhowie

apakah Anda tahu bagaimana mendapatkannya dari lokal?
— Charlie Parker

Jawaban:


164

Karena git adalah VCS terdistribusi, repositori lokal Anda berisi semua informasi. Tidak perlu mengunduh; Anda hanya perlu mengekstrak konten yang Anda inginkan dari repo di ujung jari Anda.

Jika Anda belum melakukan penghapusan, cukup periksa file dari komit Anda saat ini:

git checkout HEAD <path>

Jika Anda telah melakukan penghapusan, Anda perlu memeriksa file dari komit yang memilikinya. Agaknya itu akan menjadi komit sebelumnya:

git checkout HEAD^ <path>

tetapi jika nkomit yang lalu, gunakan HEAD~n, atau jalankan gitk, temukan SHA1 dari komit yang sesuai, dan tempelkan.


2
hanya sebagai komentar sampingan, ini juga berfungsi untuk direktori lengkap, tidak khusus atau spesifik untuk satu file (setidaknya berfungsi ketika saya mencobanya). Thnx btw.
— Charlie Parker

5
NB <path>itu wajib, meskipun hanya .titik untuk dir saat ini. Tetapi "cabang" ( HEADpada contoh di atas) adalah opsional. Seperti kebanyakan perintah Git, baik keluaran maupun bantuannya tidak membantu.
— MarkHu

39

git checkout filename

git reset --hard mungkin bisa melakukan triknya juga


9
memperingatkan tho dalam menggunakan git reset --hardmetode karena itu akan mengembalikan seluruh pohon kembali ke lokasi w / e Anda meletakkan HEAD / HEAD ^ / HEAD ~ n dan itu akan melakukannya tanpa prasangka dan berpotensi kehilangan banyak komitmen ...
— g19fanatic

nama file git checkout adalah jawaban untuk saya :)
— Ruub

nama file git checkout hanya membuat file kosong
— mrek

ditempatkan di folder yang diinginkan dan git checkount .berhasil seperti pesona!
— hzitoun

21

Jika Anda telah menghapus beberapa file secara lokal tetapi tidak berkomitmen, Anda dapat memaksa pembayaran

$ git checkout -f HEAD

Seperti yang kita lihat dari output "Already up-to-date", orang yang menanyakan pertanyaan ini tidak melakukan apa pun akhir-akhir ini. Haruskah Anda menetapkan bahwa git checkout -f HEAD BERBAHAYA? Karena dapat membatalkan perubahan lokal yang tidak dilakukan (memulihkan file sebelumnya menjadi hasil positif, kehilangan perubahan pada file yang diedit menjadi negatif).
— Lionel Trebuchon

15

Jika Anda menghapus beberapa file secara lokal dan tidak mengkomit perubahannya, pergi ke jalur repositori lokal Anda, buka git shell dan ketik.

$ git checkout HEAD .

Semua file yang dihapus sebelum komit terakhir akan dipulihkan.

Menambahkan "." akan memulihkan semua file yang terhapus di repositori saat ini, ke jalurnya masing-masing.

Untuk lebih jelasnya lihat dokumentasi .


2

Anda perlu memeriksa versi sebelumnya sebelum Anda menghapus file. Cobalah git checkout HEAD^untuk membayar revisi terakhir.


0

Selain itu, saya menambahkan untuk melakukan langkah-langkah berikut agar git repo terhubung dengan benar dengan IDE:

 $ git reset <commit #>

 $ git checkout <file/path>

Saya harap ini membantu !!

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.