Ben istenen adla yeni bir dizine yeniden adlandırılması dizini kopyalamak ve çalışmalıdır düşünüyorum eski dizini silin ve git add
, git commit
ve push
her şeyi. Ama bu en iyi yol mu?
Ben istenen adla yeni bir dizine yeniden adlandırılması dizini kopyalamak ve çalışmalıdır düşünüyorum eski dizini silin ve git add
, git commit
ve push
her şeyi. Ama bu en iyi yol mu?
Yanıtlar:
Temel yeniden adlandırma (veya taşıma):
git mv <old name> <new name>
Büyük / küçük harfe duyarlı yeniden adlandırma — ör. dan casesensitive
hiç CaseSensitive
-Bir iki adım kullanmalısınız:
git mv casesensitive tmp
git mv tmp CaseSensitive
( Git'teki büyük / küçük harf duyarlılığı hakkında daha fazla bilgi… )
… Sonra kesinleştirme ve itme, bir git git deposunda bir dizini yeniden adlandırmanın en basit yolu olacaktır.
casesensitive
için CaseSensitive
: Eğer bu şekilde yapabiliriz git mv casesensitive Temp
sonra ve git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
sonra yeniden ekleyin ve taahhüt edin
git config core.ignorecase false
komutları ard arda yürütmek ve çalıştırmak zorunda kaldım , ikinci bölüm için bir source is empty
hata alırdım .
Bu hatayı alırsanız: fatal: 'klasör adı' yeniden adlandırılamadı: Geçersiz argüman
Bunu dene:
git mv foldername tempname && git mv tempname folderName
git mv foldername tempname
ve git mv tempname folderName
Windows üzerinde çalışması gerekir.
1. Klasörün adını eski klasörden yeni klasöre değiştirin
git mv oldfolder newfolder
2. Yeni klasör deponuzda zaten varsa ve onu geçersiz kılmak ve kullanmak istiyorsanız: - force
git mv -f oldfolder newfolder
Git mv ile yeniden adlandırdıktan sonra değişiklikleri dizine eklemeyi ve kaydetmeyi unutmayın.
3. Büyük / küçük harfe duyarlı olmayan dosya sistemlerinde klasör adını klasör adı olarak yeniden adlandırma
Normal bir mv komutu ile basit yeniden adlandırma (git mv değil) git'ten bir dosya mekanizması olarak tanınmaz. Aşağıdaki satırdaki gibi 'git mv' komutuyla denerseniz
git mv foldername folderName
Büyük / küçük harfe duyarlı olmayan bir dosya sistemi kullanıyorsanız, örneğin bir Mac kullanıyorsanız ve bunu büyük / küçük harfe duyarlı olacak şekilde yapılandırmadıysanız, bunun gibi bir hata mesajı alırsınız:
fatal: 'klasör adı' yeniden adlandırılamadı: Geçersiz argüman
Ve işte çalışması için şunları yapabilirsiniz: -
git mv foldername tempname && git mv tempname folderName
Bu, ilk önce klasörü tamamen farklı bir klasör adına yeniden adlandırarak yeniden adlandırma işlemini böler. Klasörü farklı kat adına yeniden adlandırdıktan sonra, klasör sonunda yeni folderName olarak yeniden adlandırılabilir. Bu 'git mv'lerden sonra tekrar değişiklikleri eklemeyi ve taahhüt etmeyi unutmayın. Bu muhtemelen güzel bir teknik olmasa da, mükemmel çalışıyor. Dosya sistemi hala harf durumlarındaki bir değişikliği tanımayacak, ancak git yeni bir klasör adına yeniden adlandırılması nedeniyle gitiyor ve istediğimiz budur :)
Dosya sistemini kullanarak dizini yeniden adlandırabilirsiniz. Ardından şunları yapabilirsiniz git rm <old directory>
ve git add <new directory>
( Yardım sayfası ) yapabilirsiniz. Sonra taahhüt edebilir ve itebilirsiniz.
Git, içeriğin aynı olduğunu ve yalnızca bir yeniden adlandırma işlemi olduğunu algılar ve geçmişte yeniden adlandırma girişi olarak görünür. Kullanmadan önce durumun böyle olup olmadığını kontrol edebilirsiniz.git status
Web Uygulaması'ndan yapamayacağınızı düşünüyorum, ancak Git İstemcisi'ndeki tüm klasörleri yeniden adlandırabilirsiniz, dosyalarınızı yeni yeniden adlandırılmış klasörlere taşıyacak, taahhütte bulunup uzak depoya gönderecektir.
Çok benzer bir sorunum vardı : Farklı klasörleri büyük harften küçük harfe (Abc -> abc gibi) yeniden adlandırmak zorunda kaldım, tüm klasörleri kukla bir isimle ('abc___' gibi) yeniden adlandırdım ve sonra uzak depoya karar verdim tüm klasörleri küçük harfle (abc gibi) orijinal isimle yeniden adlandırdım ve onları aldı!
İki adımda çözdüm. Mv komutunu kullanarak klasörü yeniden adlandırmak için haklara ihtiyacınız vardır, eğer hakkınız yoksa bu adımları takip edebilirsiniz. Vakalara duyarlı vakaları yeniden adlandırmak istediğinizi varsayalım.
Adım 1: Klasörü (büyük / küçük harf duyarlı) explorer'dan başka bir adla yeniden adlandırın. Örneğin, klasör1'e duyarlı büyük / küçük harfleri yeniden adlandır bu değişikliği yapar.
Adım 2: Bu yeni adlandırılmış klasörü (klasör1) beklenen büyük / küçük harfe duyarlı olarak yeniden adlandırın (Büyük / küçük harf duyarlı). Folder1'i Casesensitive olarak yeniden adlandırın. Bu değişikliği yapın.
Büyük / küçük harfe duyarlı yeniden adlandırma için, git mv somefolder someFolder
daha önce benim için çalıştı ama bugün bir nedenden dolayı olmadı. Yani geçici bir çözüm olarak ben yeni bir klasör oluşturdu temp
, tüm içeriğini taşındı somefolder
içine temp
, silinmiş somefolder
, kararlı temp
, daha sonra oluşturulan someFolder
, tüm içeriğini taşındı temp
içine someFolder
, silinmiş temp
, işlenen ve itilmiş someFolder
ve işe yaradı! Git'te olduğu someFolder
gibi görünür.
Sadece klasörü yeniden adlandırın. git bir "içerik izleyici" dir, bu nedenle SHA1 karmaları aynıdır ve git, adını değiştirdiğinizi bilir. Değişen tek şey ağaç nesnesidir.
rm <directory>
git add .
git commit