Dosyalı bir havuzum var Hello.java
. Derlediğimde, ek bir Hello.class
dosya oluşturulur.
Hello.class
Bir .gitignore
dosya için bir girdi oluşturdum . Ancak, dosya hala izleniyor gibi görünüyor.
Git'i nasıl görmezden gelebilirim Hello.class
?
Dosyalı bir havuzum var Hello.java
. Derlediğimde, ek bir Hello.class
dosya oluşturulur.
Hello.class
Bir .gitignore
dosya için bir girdi oluşturdum . Ancak, dosya hala izleniyor gibi görünüyor.
Git'i nasıl görmezden gelebilirim Hello.class
?
Yanıtlar:
Sorun .gitignore
sadece daha önce (tarafından git add
) izlenmemiş dosyaları yok sayar . Run git reset name_of_file
dosyayı unstage ve tutmak için. Belirli bir dosyayı depodan kaldırmak istediğinizde (ittikten sonra) kullanın git rm --cached name_of_file
.
git rm --cached name_of_file
dosyayı git deponuzdan kaldıracaktır. Bunu .gitignore dosyanıza ekleseniz bile. Bu görmezden gelmek değil siliniyor.
git reset name_of_file
izlemeyi kaldırır ve dosyayı silmez.
Yeni dosyalar nasıl yoksayılır
Küresel
Dosyanıza yoksaymak istediğiniz .gitignore
dosyaları dosyalarınıza ekleyin (ve bunları taahhüt edin). Bu dosya girişleri, depoyu kontrol eden diğer kullanıcılar için de geçerlidir.
lokal olarak
Dosyanıza yoksaymak istediğiniz .git/info/exclude
dosyaları dosyalarınıza ekleyin . Bu dosya girişleri yalnızca yerel çalışan kopyanız için geçerlidir.
Değiştirilen dosyalar nasıl yoksayılır (geçici olarak)
Değiştirilmiş dosyaları değiştirilmiş olarak listelemek için yok saymak için aşağıdaki git komutunu kullanabilirsiniz:
git update-index --assume-unchanged <file>
Bu cehaleti geri almak için aşağıdaki komutu kullanın:
git update-index --no-assume-unchanged <file>
local
Git yoksay için bahsettiğiniz adımları yaptım ve sistemimi yeniden başlattım, hala doğrudan temiz çalıştığını gösteriyor.
update-index
numara için teşekkürler , bir .gitignore
dosyayı değiştirmekten kaçınmak için kesinlikle mükemmel , daha sonra Git tarafından izleniyor!
Aşağıdaki satırı .gitignore öğesine ekleyin:
/Hello.class
Bu, Hello.class dosyasını git'den hariç tutacaktır. Daha önce taahhüt ettiyseniz, aşağıdaki komutu çalıştırın:
git rm Hello.class
Tüm sınıf dosyalarını git dışında bırakmak istiyorsanız, aşağıdaki satırı .gitignore öğesine ekleyin:
*.class
Hello.class
için .gitignore
denilen herhangi bir dosyayı yok sayacak Hello.class
herhangi alt dizininde. Yalnızca dosyayla Hello.class
aynı dizindeki dosyayı yoksaymak istiyorsanız .gitignore
, /Hello.class
bunun yerine bir satır kullanın.
.gitignore
Dosyayı nereye koydunuz ?
.gitignore
git projesinde herhangi bir yere koyabilirsiniz - bir yol başlarsa dosyanın /
konumuna göre değişir .gitignore
; aksi takdirde, geçerli dizindeki ve onun alt dizinlerindeki dosyaları yinelemeli olarak ifade eder.
1) Bir .gitignore
dosya oluşturun . Bunu yapmak için, sadece bir .txt
dosya oluşturun ve uzantıyı aşağıdaki gibi değiştirin:
Ardından, bir cmd penceresinde aşağıdaki satırı yazarak adı değiştirmeniz gerekir:
rename git.txt .gitignore
git.txt
Az önce oluşturduğunuz dosyanın adı nerede .
Daha sonra dosyayı açabilir ve depoya eklemek istemediğiniz tüm dosyaları yazabilirsiniz. Örneğin, benimki şöyle:
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
#Project files
[Bb]uild/
#Subversion files
.svn
# Office Temp Files
~$*
Bunu elde ettikten sonra, Git deponuza eklemeniz gerekir. Dosyayı deponuzun olduğu yere kaydetmeniz gerekir.
Sonra Git Bash'de aşağıdaki satırı yazmalısınız:
git config --global core.excludesfile ~/.gitignore_global
Depo zaten varsa, aşağıdakileri yapmanız gerekir:
git rm -r --cached .
git add .
git commit -m ".gitignore is now working"
2. adım işe yaramazsa, eklemek istediğiniz dosyaların tüm yolunu yazmalısınız.
Yoksaymak:
git update-index --assume-unchanged <path/to/file>
Yoksaymayı geri almak için:
git update-index --no-assume-unchanged <path/to/file>
lstat(2)
maliyeti, bu yolun olduğunu rapor etme hakkını saklı tutar olmuştur (... modifiye git commit -a
bu değişikliği işlemek serbesttir).'
İzlenen dosyalardaki değişiklikleri yok saymak / yoksaymak için aşağıdaki yöntemleri kullanabilirsiniz.
git update-index --assume-unchanged <file>
git update-index --no-assume-unchanged <file>
lstat(2)
maliyeti, bu yolun olduğunu rapor etme hakkını saklı tutar olmuştur (... modifiye git commit -a
bu değişikliği işlemek serbesttir).'
.gitignore
.Git dizininde bir dizin oluşturun . İçindeki dosyaları yeni satırla ayırarak listeleyebilirsiniz. Ayrıca joker karakterler de kullanabilirsiniz:
*.o
.*.swp
.gitignore
(bu araç proje tarafından zorunlu kılınmadıkça). Kullanıcı başına hariç tutulan dosya (set core.excludesFile
) içine en sevdiğiniz araçlar için desenler koyabilirsiniz ; tüm depolarınızda çalışırlar. Örneğin git config --global core.excludesFile "$HOME/.git-user-excludes"
, onları bu dosyaya koyun.
Resmi GitHub sitesinden:
Zaten teslim edilmiş bir dosyanız varsa ve yoksaymak istiyorsanız, daha sonra bir kural eklerseniz Git dosyayı görmezden gelmez. Bu durumlarda, terminalinizde aşağıdaki komutu çalıştırarak önce dosyayı kaldırmalısınız:
git rm --cached FILENAME
veya
git rm --cached .
Gibi bir şey yazmalısın
*.class
içine yerleştirin .gitignore
.
*.class
adresinden Müşteri .gitignore
biten tüm dosyaları görmezden git yapmak .class
.
Bir .gitignore dosyası oluşturarak. Ayrıntılar için buraya bakın: Git Book - Dosyaları yoksayma
Ayrıca şunu kontrol edin: Git'in .gitignore kullanmadan dosyaları yoksaymasını nasıl sağlıyorsunuz?
Dosyayı zaten taahhüt ettiyseniz ve dosyaya ekleyerek yoksaymaya çalışıyorsanız .gitignore
, Git dosyayı yok saymaz. Bunun için önce aşağıdakileri yapmanız gerekir:
git rm --cached FILENAME
Projeye yeni bir şekilde başlıyorsanız ve Git yoksaymasına bazı dosyalar eklemek istiyorsanız, Git yoksayma dosyası oluşturmak için aşağıdaki adımları izleyin:
.gitignore
dosya oluşturacak "dokunmatik .gitignore" girin .Ayrıca tüm dosya türlerini hariç tutmak için .gitattributes (.gitignore yerine) kullanabilirsiniz. Dosya oldukça açıklayıcıdır, ancak içeriği referans olarak buraya yapıştırıyorum. Son satıra dikkat edin (* .class binary):
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.mo binary
*.pdf binary
*.phar binary
*.class binary
Aşağıdaki satırı .git / info / exclude
dizinine ekleyin : Hello.class
.git
mu?
Dosya "dump.rdb" ile benzer bir sorun vardı.
Bu dosyayı .gitignore dosyasına çeşitli şekillerde eklemeyi denedim, ancak yalnızca bir yol çalıştı.
Dosya adınızı .gitignore dosyasının sonuna ekleyin
NOT: Dosyayı başka bir yere eklemek işe yaramadı.
Örneğin, bkz. Https://gitlab.com/gitlab-org/gitlab-ce/raw/b3ad3f202478dd88a3cfe4461703bc3df1019f90/.gitignore
Bu web sayfası , aşağıdakilerle çalışırken yararlı ve zaman tasarrufu sağlayabilir.gitignore
.
Genellikle Git deponuza (örneğin, IDE'ye özgü klasörler ve yapılandırma dosyaları) çekmek istemediğiniz belirli dosyalara / klasörlere sahip farklı IDE'ler ve işletim sistemleri için .gitignore dosyaları otomatik olarak oluşturur.
Bunu denedim -
git status
.idea/xyz.xml
.idea/pqr.iml
Output
.DS_Store
echo "
.idea/xyz.xml
.idea/pqr.iml
Output
.DS_Store" >> .gitignore
git status
.gitignore
benzer şekilde git durumunu kullanarak yoksaymak istediğimiz dizin ve tüm alt dizinlerini / dosyalarını ekleyebiliriz ve directoryname/*
bu komutu dizinden yürüttüm src
.
git rm -r --cached .
git add .
Ben denedim --assume-unchanged
ve aynı zamanda .gitignore
ama ikisi de iyi çalıştı. Şube değiştirmeyi zorlaştırır ve diğerlerinden gelen değişiklikleri birleştirmeyi zorlaştırırlar. Bu benim çözümüm:
Ne zaman işlemek , el ile listeden dosyaları kaldırmak değişikliklerin
Ben önce çekin , ben saklamak değiştirilen dosyalar. Ve çekildikten sonra, bir saklamak pop yaparım .
Adım 3 bazen bir birleştirmeyi tetikler ve çözmeniz gereken çakışmalara neden olabilir, bu da iyi bir şeydir.
Bu, ekipteki diğer kişilerle paylaşılmayan yerel değişiklikleri korumamı sağlar.