Pertanyaan Bagaimana cara mengembalikan perubahan yang tidak terikat termasuk file dan folder?


Apakah ada perintah git untuk mengembalikan semua perubahan yang tidak terikat dalam pohon kerja dan indeks dan juga menghapus file dan folder yang baru dibuat?


878
2018-04-27 16:06


asal


Jawaban:


Anda dapat menjalankan dua perintah ini:

# Revert changes to modified files.
git reset --hard

# Remove all untracked files and directories. (`-f` is `force`, `-d` is `remove directories`)
git clean -fd

1473
2018-04-28 02:37



Jika Anda ingin mengembalikan perubahan hanya di direktori kerja saat ini, gunakan

git checkout -- .

Dan sebelum itu, Anda dapat membuat daftar file yang akan dikembalikan tanpa benar-benar melakukan tindakan apa pun, hanya untuk memeriksa apa yang akan terjadi, dengan:

git checkout --

475
2018-06-21 04:41



Gunakan "git checkout - ..." untuk membuang perubahan dalam direktori kerja

git checkout -- app/views/posts/index.html.erb

atau

git checkout -- *

menghapus semua perubahan yang dilakukan pada file yang tidak disimpan dalam status git misalnya

modified:    app/controllers/posts.rb
modified:    app/views/posts/index.html.erb

92
2018-03-13 01:16



Satu cara non-sepele adalah dengan menjalankan dua perintah ini:

  1. git stash  Ini akan memindahkan perubahan Anda ke simpanan, membawa Anda kembali ke keadaan HEAD
  2. git stash drop  Ini akan menghapus simpanan terbaru yang dibuat di perintah terakhir.

42
2017-07-18 09:20



git clean -fd

tidak membantu, file baru tetap ada. Apa yang saya lakukan benar-benar menghapus semua pohon kerja dan kemudian

git reset --hard

Lihat "Bagaimana cara menghapus direktori kerja lokal saya di git?"untuk saran untuk menambahkan -x pilihan untuk membersihkan:

git clean -fdx

Catatan  -x Bendera akan menghapus semua file yang diabaikan oleh Git jadi berhati-hatilah (lihat diskusi dalam jawaban yang saya maksud).


14
2017-10-15 06:57



Saya pikir Anda dapat menggunakan perintah berikut: git reset --hard


10
2018-04-27 16:10



Harap dicatat bahwa mungkin masih ada file yang sepertinya tidak akan hilang - mereka mungkin tidak diedit, tetapi git mungkin telah menandai mereka sebagai diedit karena perubahan CRLF / LF. Lihat apakah Anda telah melakukan beberapa perubahan .gitattributes baru saja.

Dalam kasus saya, saya telah menambahkan pengaturan CRLF ke dalam .gitattributes file dan semua file tetap dalam daftar "file yang dimodifikasi" karena ini. Mengubah pengaturan .gitattributes membuatnya menghilang.


5
2017-07-19 10:07



Cara yang aman dan panjang:

  1. git branch todelete
  2. git checkout todelete
  3. git add .
  4. git commit -m "I did a bad thing, sorry"
  5. git checkout develop
  6. git branch -D todelete

-2
2017-11-19 02:08