Apa cara yang benar untuk membatalkan penggantian nama di git, seperti:
git mv file1 file2
Apa cara yang benar untuk membatalkan penggantian nama di git, seperti:
git mv file1 file2
Jawaban:
Jawaban tidak nakal:
git mv file2 file1
Memperbarui indeks untuk jalur lama dan baru secara otomatis.
Periksa dokumentasi git mv
git checkout .
tidak berfungsi, bahkan dengan -f
opsi?
git checkout -- .
.
fatal: source directory is empty,
hanya git reset --hard
melakukan pekerjaan itu.
Jika Anda tidak melakukan perubahan lain (yang ingin Anda pertahankan) sejak komit terakhir, Anda bisa melakukannya
git reset --hard
git reset --hard
. Memindahkannya ke belakang sepertinya merupakan pilihan yang lebih aman bagi saya.
git reset HEAD file2
melakukan trik untuk saya
Dalam kasus saya, saya memindahkan seluruh folder, lalu menyadari bahwa saya seharusnya tidak melakukannya.
Saya sangat menyukai jawaban @Dave Konopka, tetapi saya tidak terlalu berhasil dengan pendekatan itu (mungkin versi GIT saya (1.8.4)? File saya masih ditampilkan sebagai dihapus. Saya memiliki perubahan lain pada tumpukan yang tidak saya inginkan kalah (sayangnya).
Saya berhasil melakukan ini:
git reset moved_folder
git checkout original_folder
Itu tergantung pada apa yang ingin Anda capai. Jika Anda ingin tampak seolah-olah file tersebut tidak pernah dipindahkan, maka Anda dapat mengatur ulang (atau melakukan rebase) kembali ke sebelum pindah. Jika Anda tidak peduli dengan sejarahnya, maka pindahkan kembali.
Jika Anda secara tidak sengaja mengganti nama sejumlah besar file dan ingin kembali ke awal, hapus semua file yang diganti namanya yang muncul sebagai di adds
bawah git status
panggilan.
Setelah Anda menghapus semua file yang diubah, Anda dapat menjalankan git checkout -- *
untuk mendapatkan kembali nama file asli secara lokal.
git reset HEAD file2
git checkout -- file1
rm file2
Perintah pertama menghapus file2 tetapi meninggalkan salinannya. Perintah kedua memulihkan file asli dan yang ketiga menghapus file baru.
Trik yang saya gunakan adalah melakukan git simpanan untuk membatalkan semua perubahan saya (termasuk memulihkan file mv'd) dan kemudian menghapus simpanan dengan git stash drop.
Yang kurang menakutkan adalah pergi ke tingkat atas repo dan lakukan:
git reset
git checkout.
git mv file2 file1