Depodaki dosyalar nasıl yok sayılır?


96

Zaten Git deposuna kaydedilmiş bir dosyam var (config.php), ancak yerel olarak görmezden gelmek istiyorum, yani bu dosyanın depoda kalmasını istiyorum, ancak Git'i üzerindeki değişiklikleri göz ardı etmeye zorladım.

Dosyayı .gitignore'a koydum, ancak yine de değiştirilmiş olarak işaretleniyor ve Git, her seferinde bir şey yaptığımda hala üzerinde değişiklik yapmaya çalışıyor. Herhangi bir fikriniz, neyi kaçırıyorum veya yanlış yapıyorum?


lütfen .gitignore dosyanızı ekleyin - bu şekilde onunla ilgili herhangi bir sorun görebiliriz.
Lars

Yanıtlar:


195

Dosya .gitignore içinde olmasına rağmen hala durumda görüntüleniyorsa, halihazırda izlenmediğinden emin olun.

git rm --cached config.php

Yerel olarak görmezden gelmek istiyorsanız, git statüsü ile de göz ardı edebilirsiniz:

git update-index --assume-unchanged config.php

Gibi yorumladı kullanarak o notu yapmak --assume-unchangedgibi istenmeyen veri kaybına neden olabilecek git stashbir uyarı olmadan, yerel değişiklikleri geri almayı, akışyukarısındaki resetlemelerin devlete "ihmal" dosyaları veya kaydetme.


1
Tamam teşekkürler ! Şubemi başka bir şubeyle birleştirirsem, bu dosya bazı problemler yaratabilir mi?
prcaen

1
@ Nimbus147: bu bir sorun olmamalı ve bu dosyadaki herhangi bir değişiklik göz ardı edilecektir (yani eklenmemiş / kaydedilmeyecektir).
VonC

SmartGit kullanıyorsanız, bunu yapmak için remove kullanmalısınız.
Omid-RH

1
update-index --assume-unchangedUzak dalı zorlamanın bir yolu var mı ? Dosyayı depoda tutmak istiyorum, ancak başkaları tarafından değiştirilemeyecek, üstelik sahneye çıkamayacak.
p014k

1
@ p014k Bildiğim kadarıyla değil. Bu tür bir dosya için, farklı bir adla sürümlendirilmiş halde tutuyorum, ardından gerektiğinde doğru dosyayı (özel) otomatik olarak oluşturmak için bir içerik dosyalama sürücüsü kullanıyorum. Bu filtre örneğin sahnede aktif olmayacaktı. Bkz stackoverflow.com/a/54454356/6309 ve ilişkili bağlantı.
VonC

6

Teslim edilen dosyada yoksay:

git update-index --assume-unchanged file

Geri dönmek için

git update-index --no-assume-unchanged file

Tümünü Geri Döndür

git update-index --really-refresh 

Faydalı. Bir dosyayı geri döndürme işe yaradı, ancak hepsini geri döndürmedi.
Adem Tepe

4

Dosya zaten havuzdaysa ve dolayısıyla Dizin / Hazırlama alanındaysa, o zaman .gitignore'a yapılan bir güncelleme bu durumu değiştirmez - Kaydedilmeye devam eder.

Dosyayı Dizin / Hazırlama alanından kaldırmak için kullanın git rm <file>.


Ya dosya depodaysa ancak henüz hazırlanmadıysa? * .Log dosyalarını yok saymaya çalışıyorum, ancak onları "Değişiklikler" altında görüyorum. Hepsini görmezden gelmek istiyorum, ne yapmalı?
Sandra K

@SandraK Son işlemde depoda o dosyanın daha eski bir sürümü varsa (dosya yolu / adı), o zaman izlenmiş olarak kabul edilir - 'dizin' kayıtlarında bu dosya statusolacaktır ve bu yüzden size söylemeye devam edecektir. bu değişiklikler hakkında. * .Log dosyalarını, hem önceden izlenen hem de şu anda izlenmeyen dosyalar için yok saymak istiyorsanız, hem git rm *.log.gitignore dosyanızı hem de güncellemeniz gerekir. Önce bazı günlük dosyalarının gerçekten önemli olup olmadığını kontrol edin ... Özel olanı unutmak kolaydır ;-)
Philip Oakley

-3

Bir dosya .gitignore'da listelendiğinde onu değiştiremezsiniz.

Böylece, dosyayı listeden bir işlemde kaldırabilir, sonraki değişiklikleri uygulayabilir ve ardından dosyayı daha sonra 3. işlemde yoksay listesine yeniden ekleyebilirsiniz.

Genelde yaptığım şey dosyayı ikiye bölmektir, birine izin verilir ve ben değiştirebilirim, eğer varsa ikinci dosyayı da içerir, daha sonra devs isteğe bağlı olarak yok sayılan dosyada yapılandırma değişiklikleri yapabilir.


1
" .Gitignore'da bir dosya listelendiğinde onu değiştiremezsiniz " - açıklayabilir misiniz, ne demek istiyorsunuz? Benim dosyalarımın çoğunda çok fazla dosya var .gitignoreve bu dosyaları sürekli değiştiriyorum! İlk defa birisinin, 'a dosya ekledikten sonra onu .gitignoredeğiştiremeyeceğim' dediğini duyuyorum .
trejder

1
Aslında yanılıyor. Onları değiştirebilirsiniz. Git bunları yüklemiyor, hatta size yükleme seçeneği bile vermiyor.
David
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.