2016-03-29 16 views
1

Git sürüm kontrol sisteminden bazı dosyaları kaldırmaya çalışıyorum;git rm - çalışmadı

İkisi git rm --cached dosya ve git rm --force --cached dosya adı birkaç dosya için çalışmıyor. Temel olarak kaldırılan dosyalar github'a aktarılır (söz konusu dosyaları değiştirdiğimde değil, yalnızca projedeki diğer dosyaları düzenlediğimde ve işlediğimde değil).

Ayrıca, birkaç dosya için ölümcül olsun: pathspec, dosyalar git rm komutu için yoldayken herhangi bir dosya hatasıyla eşleşmedi.

Burada birşeyler var ama her şeyi nasıl güvenli şekilde sıfırlayacağımı bilmiyorum. Lütfen yardım edebilir misin.

+1

Git'in nasıl çalıştığı hakkında biraz kafa karıştırıcı olabilir. Dosyaları sildikten ve ittiğinizde, bunların uzak depodan kaldırılmasına neden olması gerekir. Tabii ki, dosyalar yine de tarihte olacak çünkü bir anda oradaydılar. –

cevap

0

bu komutları deneyin: -

  1. git reset filename

  2. git reset HEAD filename

Onlar alanı evreleme dosyaları kaldıracaktır. Projenizin kök klasörüne .gitignore için dosya yolunu ekleyin.

0

Bir dosyayı dizinden kaldırmak yeterli değildir. Ayrıca, bulunduğunuz şubeye bu dizinin bir taahhütünü oluşturmalı ve sonra bu değişikliğin görünmesini istediğiniz uzak depoya itmelisiniz. Yaptığınız tüm işlemler git rm ... ise git push ise github'a kaldırılmaz.

git rm --cached gerçekleştirdikten sonra, çalışma ağacında kalırken dosyalar dizinden kaldırılır.

git diff'u çalıştırırsanız, hiçbir şey görmezsiniz: bunun nedeni çalışan ağacı dalın ipucuyla karşılaştırmasıdır. Aşamalı kaldırmayı görmek için git diff --cached kullanın. Bu, şube ucu ve endeks arasındaki farktır. Bir sonraki git commit numaralı telefonu çağırdığınızda işlenecek olan budur.

Kaldırma işleminiz yalnızca başka dosyalar gerçekleştirdiğinizde itilir çünkü işlemlerin kaldırılması gerekiyor. Diğer değişiklikleri yaptığınızda ve bunları taahhüt ettiğinizde, bu taahhütler önceden aşamalı olarak kaldırılanları kaldırıyor. Yanlışlıkla aynı bir dosya y için düzenleme içeren bir dosyanın x bir konu dışı dosya kaldırma işlemek kombine varsa

, sen x kaldırılmasını tersine aşamalı bir dizin oluşturmak için git reset HEAD^ -- x kullanabilirsiniz. O zaman bunu yap. Ya da henüz bozuk olanı yayınlamadıysanız commit --amend'u kullanın. Değiştirilen taahhüt şimdi sadece y düzenlemelerine sahiptir ve x bir kez daha izlenen bir dosyadır. Şimdi kaldırma işlemini rm --cached x ile yeniden yapın ve bunun için yeni bir taahhütte bulunun.