Saya pikir itu harus bekerja untuk menyalin direktori untuk diubah namanya menjadi direktori baru dengan nama yang diinginkan, dan menghapus direktori lama , dan git add
, git commit
dan push
semuanya. Tetapi apakah ini cara terbaik?
655
Jawaban:
Ganti nama dasar (atau pindah):
Ganti nama sensitif huruf — mis. dari
casesensitive
keCaseSensitive
- Anda harus menggunakan dua langkah:( Lebih lanjut tentang sensitivitas huruf di Git ... )
... diikuti oleh komit dan tekan akan menjadi cara paling sederhana untuk mengubah nama direktori dalam repo git.
sumber
casesensitive
menjadiCaseSensitive
, Anda dapat melakukan ini:git mv casesensitive Temp
dan kemudiangit mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
kemudian tambahkan kembali dan komitgit config core.ignorecase false
dan kemudian menjalankan perintah berturut-turut atau yang lain, untuk bagian kedua saya akan mendapatkansource is empty
kesalahan.Jika Anda menerima kesalahan ini: fatal: mengganti nama 'foldername' gagal: Argumen tidak valid
Coba ini:
git mv foldername tempname && git mv tempname folderName
sumber
git mv foldername tempname
dangit mv tempname folderName
, yang seharusnya berfungsi pada Windows.1. Ubah nama folder dari folder lama ke folder baru
2. Jika folder baru sudah ada di repositori Anda & Anda ingin menimpanya dan menggunakan: - paksa
Jangan lupa untuk menambahkan perubahan ke indeks & komit setelah mengganti nama dengan git mv.
3. Mengganti nama folder nama menjadi folderName jika sistem file tidak sensitif
Mengganti nama sederhana dengan perintah mv normal (bukan git mv) tidak akan dikenali sebagai perubahan berkas dari git. Jika Anda mencobanya dengan perintah 'git mv' seperti pada baris berikut
Jika Anda menggunakan sistem file case-insensitive, misalnya Anda menggunakan Mac dan Anda tidak mengkonfigurasinya menjadi case-sensitive, Anda akan mengalami pesan kesalahan seperti ini:
fatal: penggantian nama 'foldername' gagal: Argumen tidak valid
Dan inilah yang dapat Anda lakukan untuk membuatnya bekerja: -
Ini membagi proses penggantian nama dengan mengubah nama folder pada awalnya menjadi nama pengguna yang sama sekali berbeda. Setelah mengubah nama menjadi nama lipat yang berbeda folder akhirnya dapat diubah namanya menjadi nama folder baru. Setelah git mv itu, sekali lagi, jangan lupa untuk menambahkan dan melakukan perubahan. Meskipun ini mungkin bukan teknik yang indah, itu berfungsi dengan baik. Filesystem masih tidak akan mengenali perubahan huruf, tetapi git tidak karena mengubah nama menjadi nama pengguna baru, dan hanya itu yang kami inginkan :)
sumber
Anda dapat mengganti nama direktori menggunakan sistem file. Maka Anda bisa melakukannya
git rm <old directory>
dangit add <new directory>
( halaman Bantuan ). Kemudian Anda dapat melakukan dan mendorong.Git akan mendeteksi bahwa isinya sama dan itu hanya operasi penggantian nama, dan itu akan muncul sebagai entri ganti nama dalam riwayat. Anda dapat memeriksa apakah ini masalahnya sebelum komit menggunakan
git status
sumber
Dari Aplikasi Web, saya pikir Anda tidak bisa, tetapi Anda bisa mengganti nama semua folder di Git Client, itu akan memindahkan file Anda di folder yang diganti nama baru, daripada komit dan mendorong ke repositori jarak jauh.
Saya memiliki masalah yang sangat mirip: Saya harus mengganti nama folder yang berbeda dari huruf besar ke huruf kecil (seperti Abc -> abc), saya telah mengganti nama semua folder dengan nama dummy (seperti 'abc___') dan daripada berkomitmen untuk repositori jarak jauh, setelah bahwa saya mengganti nama semua folder ke nama asli dengan huruf kecil (seperti abc) dan butuh!
sumber
Saya menyelesaikannya dalam dua langkah. Untuk mengganti nama folder menggunakan perintah mv Anda perlu hak untuk melakukannya, jika Anda tidak memiliki hak Anda dapat mengikuti langkah-langkah ini. Misalkan Anda ingin mengganti nama caseensitive menjadi Caseensitive.
Langkah 1: Ganti nama folder (caseensitive) menjadi sesuatu yang lain dari explorer. mis. Ganti nama caseensitive ke folder1 melakukan perubahan ini.
Langkah 2: Ganti nama folder yang baru bernama ini (folder1) menjadi nama sensitif case yang diharapkan (Caseensitive) misalnya. Ganti nama folder1 menjadi Caseensitive. Lakukan perubahan ini.
sumber
Untuk penggantian nama sensitif,
git mv somefolder someFolder
telah bekerja untuk saya sebelumnya tetapi tidak hari ini karena beberapa alasan. Jadi sebagai solusi saya membuat folder barutemp
, memindahkan semua kontensomefolder
menjaditemp
, menghapussomefolder
, melakukantemp
, lalu membuatsomeFolder
, memindahkan semua kontentemp
kesomeFolder
, menghapustemp
, melakukan dan mendorongsomeFolder
dan berhasil! Ditampilkan sepertisomeFolder
di git.sumber
Cukup ganti nama foldernya. git adalah "pelacak konten", jadi hash SHA1 adalah sama dan git tahu, bahwa Anda menamainya kembali. Satu-satunya hal yang berubah adalah objek pohon.
sumber