Bagaimana cara mengembalikan perubahan yang tidak dikomit, termasuk file dan folder?

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

737
27 апр. atur MEM 27 apr. 2011-04-27 19:06 '11 pada 19:06 2011-04-27 19:06
@ 10 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 
1263
28 апр. jawaban yang diberikan htanata 28 Apr 2011-04-28 05:37 '11 pada 5:37 pada 2011-04-28 05:37

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

 git checkout -- . 

Semoga ini bisa membantu.

417
21 июня '13 в 7:41 2013-06-21 07:41 jawabannya diberikan oleh Ramashish Baranwal pada 21 Juni '13 pukul 7:41 2013-06-21 07:41

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

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

atau

 git checkout -- * 

menghapus semua perubahan yang dibuat untuk menghapus file dalam kondisi git, misalnya

 modified: app/controllers/posts.rb modified: app/views/posts/index.html.erb 
77
13 марта '13 в 4:16 2013-03-13 04:16 jawabannya diberikan kepada Zarne Dravitzki pada 13 Maret 13 di 4:16 2013-03-13 04:16

Salah satu cara nontrivial adalah menjalankan dua perintah ini:

  • git stash Ini akan memindahkan perubahan Anda ke simpanan, mengembalikan Anda ke status HEAD.
  • git stash drop Ini akan menghapus cache terakhir yang dibuat pada perintah terakhir.
35
18 июля '13 в 12:20 2013-07-18 12:20 jawabannya diberikan oleh glumgold 18 Juli '13 pada 12:20 2013-07-18 12:20
 git clean -fd 

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

 git reset --hard 

Lihat " Bagaimana cara membersihkan direktori kerja lokal di git? " Untuk menambahkan opsi -x ke clean:

 git clean -fdx 

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

12
15 окт. jawabannya diberikan oleh Fr0sT 15 Oktober. 2012-10-15 09:57 '12 pada 9:57 2012-10-15 09:57

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

10
27 апр. Balas diberikan oleh Josnidhin pada 27 Apr 2011-04-27 19:10 '11 pada 19:10 2011-04-27 19:10

Perhatikan bahwa mungkin masih ada file yang tampaknya tidak hi>.gitattributes .

Dalam kasus saya, saya menambahkan pengaturan CRLF ke file .gitattributes , dan semua file tetap ada dalam daftar "file yang diubah" karena ini. Mengubah pengaturan .Gitattributes membuatnya menghi>

4
19 июля '16 в 13:07 2016-07-19 13:07 jawabannya diberikan oleh Rob Quist 19 Juli '16 pada 13:07 2016-07-19 13:07

Aman dan jauh:

  • git branch todelete
  • git checkout todelete
  • git add .
  • git commit -m "I did a bad thing, sorry"
  • git checkout develop
  • git branch -D todelete
-2
19 нояб. Jawaban diberikan oleh Jason Lemay 19 Nov 2013-11-19 05:08 '13 pada 5:08 2013-11-19 05:08

Gunakan:

 git reset HEAD filepath 

Sebagai contoh:

 git reset HEAD om211/src/META-INF/persistence.xml 
-3
09 февр. Balas diberikan oleh Aniket pada 09 Feb. 2015-02-09 16:18 '15 pada 16:18 2015-02-09 16:18

Saya biasanya menggunakan metode ini yang bekerja dengan baik:

 mv fold/file /tmp git checkout fold/file 
-3
08 апр. Balas diberikan oleh thinkhy 08 Apr. 2016-04-08 10:17 '16 pada 10:17 2016-04-08 10:17

Pertanyaan lain tentang tag atau Ajukan Pertanyaan