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".

Dick Colt
sumber
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.

Bertingkat
sumber
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

Šimon Tóth
sumber
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
Amit
sumber
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 .

rzskhr
sumber
2

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

meagar
sumber
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 !!

Mona Wade
sumber