Saya sedang mengerjakan sebuah cabang, katakanlah cabang "eksperimental" yang saya percabangkan dari cabang master saya. Lalu, saya membuat model pengguna di cabang eksperimental, tetapi belum menambahkannya ke indeks.
Apa yang harus saya lakukan jika saya ingin membuang semua perubahan file yang baru-baru ini ditambahkan di cabang eksperimental saya? File yang tidak terlacak terdaftar sebagai berikut:
$ git status
On branch new_chick
Untracked files:
(use "git add <file>..." to include in what will be committed)
.project
app/models/user.rb
db/migrate/
test/fixtures/users.yml
test/unit/user_test.rb
Saya mencoba menjalankan "git reset --hard" dengan harapan dapat membatalkan semua perubahan itu, tetapi semua file di atas masih muncul.
Adakah yang bisa menjelaskan padaku?
Jawaban:
Untuk menghapus file / direktori yang tidak terlacak lakukan:
-f - memaksa
-d - direktori juga
-x - hapus juga file yang diabaikan (jangan gunakan ini jika Anda tidak ingin menghapus file yang diabaikan)
Gunakan dengan Hati-hati!
Perintah-perintah ini dapat secara permanen menghapus file sewenang-wenang, yang tidak Anda pikirkan pada awalnya. Silakan periksa kembali dan baca semua komentar di bawah jawaban ini dan --bagian bantuan, dll., Jadi untuk mengetahui semua detail untuk menyempurnakan perintah Anda dan pasti mendapatkan hasil yang diharapkan.
sumber
-x
DENGAN HATI-HATI karena ini akan menghapus file secara permanen. Atau gunakan dengan-n
seperti yang disebutkan oleh @Druska-x
Masih tidak digunakan , proyek dan file konfigurasi lainnya terhapus. Harus menarik repo lagi dari komit terakhir ke direktori baru.Pendekatan interaktif pengguna:
-i untuk interaktif
-f untuk force
-d untuk direktori
-x untuk file yang diabaikan (tambahkan jika diperlukan)
Catatan: Tambahkan -n atau --dry-run untuk memeriksa apa yang akan dilakukannya.
sumber
Itu adalah file yang tidak terlacak. Ini berarti git tidak melacaknya. Ini hanya mencantumkannya karena tidak ada di file git ignore. Karena mereka tidak dilacak oleh git,
git reset
tidak akan menyentuhnya.Jika Anda ingin menghapus semua file yang tidak terlacak, cara termudah adalah
git clean -f
(gunakangit clean -n
sebagai gantinya jika Anda ingin melihat apa yang akan dihancurkan tanpa benar-benar menghapus apa pun). Jika tidak, Anda bisa langsung menghapus file yang tidak Anda inginkan.sumber
Untuk menghapus file yang tidak terlacak:
git clean -f
Untuk menghapus direktori yang tidak terlacak juga, gunakan:
git clean -f -d
Untuk mencegah serangan jantung, gunakan
git clean -n -f -d
sumber
Anda juga dapat kembali ke status repo lokal sebelumnya dengan cara lain:
git add
.git reset --hard
.sumber
Perintah untuk menyelamatkan Anda adalah
git clean
.sumber
Nah, saya punya masalah serupa. Saya telah mengambil yang terbaru tetapi ada beberapa perubahan di lokal yang menyebabkan penggabungan tidak terjadi pada file tertentu. File tersebut tidak terlacak dan saya tidak menginginkannya jadi Yang saya lakukan adalah -
$ git checkout jalur file / nama file
filepath - Lokasi tempat saya melakukan git bash. kemudian ketika saya mengambil yang terbaru, perubahan itu tersedia
sumber
Meskipun
git clean
berfungsi dengan baik, saya masih merasa berguna menggunakan skrip saya sendiri untuk membersihkan repo git, ini memiliki beberapa keuntungan.Ini menunjukkan daftar file yang akan dibersihkan, kemudian secara interaktif meminta untuk membersihkan atau tidak. Ini hampir selalu yang saya inginkan karena permintaan interaktif per file menjadi membosankan.
Ini juga memungkinkan pemfilteran manual dari daftar yang berguna ketika ada jenis file yang tidak ingin Anda bersihkan (dan memiliki alasan untuk tidak berkomitmen).
git_clean.sh
sumber