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?
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?
Jawaban:
Ganti nama dasar (atau pindah):
git mv <old name> <new name>
Ganti nama sensitif huruf — mis. dari casesensitive
ke CaseSensitive
- Anda harus menggunakan dua langkah:
git mv casesensitive tmp
git mv tmp CaseSensitive
( Lebih lanjut tentang sensitivitas huruf di Git ... )
... diikuti oleh komit dan tekan akan menjadi cara paling sederhana untuk mengubah nama direktori dalam repo git.
casesensitive
menjadi CaseSensitive
, Anda dapat melakukan ini: git mv casesensitive Temp
dan kemudian git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
kemudian tambahkan kembali dan komit
git config core.ignorecase false
dan kemudian menjalankan perintah berturut-turut atau yang lain, untuk bagian kedua saya akan mendapatkan source 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
git mv foldername tempname
dan git mv tempname folderName
, yang seharusnya berfungsi pada Windows.
1. Ubah nama folder dari folder lama ke folder baru
git mv oldfolder newfolder
2. Jika folder baru sudah ada di repositori Anda & Anda ingin menimpanya dan menggunakan: - paksa
git mv -f oldfolder newfolder
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
git mv foldername folderName
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: -
git mv foldername tempname && git mv tempname folderName
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 :)
Anda dapat mengganti nama direktori menggunakan sistem file. Maka Anda bisa melakukannya git rm <old directory>
dan git 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 menggunakangit status
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!
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.
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 baru temp
, memindahkan semua konten somefolder
menjadi temp
, menghapus somefolder
, melakukan temp
, lalu membuat someFolder
, memindahkan semua konten temp
ke someFolder
, menghapus temp
, melakukan dan mendorong someFolder
dan berhasil! Ditampilkan seperti someFolder
di git.
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.
rm <directory>
git add .
git commit