Saya ingin mercurial menghapus beberapa file dari kondisi repositori saat ini. Namun, saya ingin file ada di riwayat sebelumnya.
Bagaimana forget
dan remove
berbeda, dan dapatkah mereka melakukan apa yang saya inginkan?
version-control
mercurial
Paul Nathan
sumber
sumber
Jawaban:
'
hg forget
' hanya singkatan untuk 'hg remove -Af
'. Dari bantuan 'hg remove
':Intinya: '
remove
' menghapus file dari copy pekerjaan Anda pada disk (kecuali Anda menggunakan-Af
) dan 'forget
' tidak.sumber
Cara terbaik untuk menempatkan adalah bahwa
hg forget
adalah identik untukhg remove
kecuali bahwa ia meninggalkan file di belakang dalam Anda copy pekerjaan. File-file tersebut ditinggalkan sebagai file yang tidak terlacak dan sekarang dapat secara opsional diabaikan dengan pola masuk.hgignore
.Dengan kata lain, saya tidak tahu apakah Anda menggunakan
hg forget
atauhg remove
kapan saya menarik dari Anda. Sebuah file yang Anda berlarihg forget
pada akan dihapus ketika saya update ke changeset itu - sama seperti jika Anda telah menggunakanhg remove
sebagai gantinya.sumber
Dari dokumentasi, Anda dapat menggunakan perintah untuk menyimpan file dalam sejarah proyek. Sepertinya Anda ingin menghapus, karena itu juga menghapus file dari direktori kerja.
Dari buku Mercurial di http://hgbook.red-bean.com/read/ :
Halaman manual hg (1) mengatakan ini tentang lupa:
Dan ini tentang hapus:
sumber
Jika Anda menggunakan
"hg remove b"
terhadap file dengan status "A", yang berarti telah ditambahkan tetapi tidak dilakukan, Mercurial akan merespons:Tanggapan ini adalah penjelasan yang sangat jelas tentang perbedaan antara menghapus dan melupakan.
Pemahaman saya adalah bahwa
"hg forget"
untuk membatalkan file yang ditambahkan tetapi tidak dilakukan sehingga tidak dilacak oleh kontrol versi; sementara"hg remove"
untuk mengambil file yang berkomitmen dari kontrol versi.Utas ini memiliki contoh untuk digunakan
hg remove
melawan file dengan 7 jenis status berbeda.sumber
sumber