Git'teki bir dosyayı yalnızca büyük / küçük harfe göre değişen nasıl yeniden adlandırabilirim?


14

Git (Xcode) projemde uygun olmayan bir dosya adı verdim. Şimdi yeniden adlandırmaya çalıştım, ama taahhüt ettiğimde:

ölümcül: 'MyProject / MyFile.h' dosya takma adı eklenmeyecek ('MyProject / MyFilE.h' zaten dizinde var)

Bunun nedeni git'in HFS + gibi büyük / küçük harfe duyarlı, büyük / küçük harfe duyarlı olmayan bir dosya sisteminde çalışmaya alışık olmamasıdır. Ama bunun üstesinden nasıl gelebilirim?

Her iki dosyayı başka bir şeye yeniden adlandırmayı denedim ve bunu taahhüt ettim ve sonra bunları istediğim şekilde yeniden adlandırdım, ancak yine de başarısız oluyor (aynı hata mesajıyla).

Yanıtlar:


21

Stackoverflow'da sorulduğu ve yanıtlandığı gibi , bunu bir disk görüntü dosyasında yeni bir dosya sistemi oluşturmayı içermeyen daha kolay bir yol var:

Mevcut dosyanızı bir kenara taşıyın, bu hamleyi yapın, ardından sürdürmesini ve işlemesini istediğiniz vakayı kullanarak geri taşıyın. Bitti.

Misal:

mv foo foo2
git add -A
git commit -m "renaming"
mv foo2 FOO
git add -A
git commit --amend -m "renamed foo to FOO"

bağlantı çürümesinden kaçınmak için genellikle sizden cevabın arkasındaki cevabın ilgili kısımlarını cevabın gövdesine kopyalamanızı rica ediyoruz.
Ian C.

Teşekkürler @ ian-c. Bu kuralın stackexchange ailesi içindeki bağlantılar için geçerli olmadığını umuyordum.
mspasov

1
Evet, söylediğini anlıyorum ama tutarlılık güzel.
Ian C.

Tuhaf. Bunu denediğim için pozitiftim ama bugün işe yarıyor. Teşekkürler.
Ken

2

Bu durumu doğrudan büyük / küçük harfe duyarlı olmayan bir dosya sisteminde düzeltmenin bir yolunu bulamadım, büyük / küçük harfe duyarlı bir dosya sistemine ihtiyacınız var.

Neyse ki Mac OS X'in iyi bir sanal disk montaj desteği vardır, böylece bilgisayarınızda hızlı ve kolay bir (geçici) büyük / küçük harfe duyarlı dosya sistemi elde edebilirsiniz.

Disk İzlencesi'ni açın, Yeni bir Resim yapın ve "Biçim" alanını "Mac OS Genişletilmiş" in büyük / küçük harf duyarlı sürümlerinden birine ayarlayın. Ayrıca deponuz için yeterince büyük yaptığınızdan emin olun.

Yeni diskinizi takın, üzerine git deposunu kontrol edin, doğru adlandırılmış dosyanın doğru içeriğe sahip olduğundan emin olun ve diğerini silin. Değişikliklerinizi yerine getirin ve itin, ardından disk görüntüsünü çıkarıp silebilirsiniz.

Klonlanacak uzak sunucunuz yoksa (yani sabit diskinizde yerel olarak bir git repo çalıştırıyorsanız), doğrudan sabit diskinizdeki diğer git deposundan klonlayabileceğinizi unutmayın.


1
Bu çok emek yoğun. Bunu, bir disk görüntü dosyasında yeni bir dosya sistemi açmak zorunda kalmadan yapabilirsiniz.
Ian C.

1

Adım 1 : Dosyayı daha farklı bir adla yeniden adlandırın (yalnızca harf durumundan daha fazla.) Sadece geçerli addan ve vermek istediğiniz addan farklı bir rastgele ad seçin.

Adım 2 : taahhüt (Terminal) GUI (Xcode) tarafından bu dosya veya CLI tarafından

Adım 3 : Dosyayı yeniden adlandırmak istediğiniz gibi yeniden adlandırın. Yani şimdi, sadece önceki adı taşıyan durumdan daha fazla fark olacak.

Adım 4 : taahhüt yeniden adlandırılan dosyayı.

Sihirli numaralara gerek yok. Ve GUI veya CLI ile taahhütte bulunmayı seçebilirsiniz.


0

Sourcetree kullanıyorum. CLI kullanmadan bunu yapmak için kolay bir adım vardır. dosyayı başka bir adla yeniden adlandırın (örneğin, Index.php yerine Index_old.php), sonra taahhüt edin ve itin .. tekrar adı istediğiniz adla değiştirin (index.php) sonra taahhüt edin ve gönderin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.