.gitignore dosyamda xcode projemde nereye koymalıyım?


Yanıtlar:


124

Bir olabilir .gitignoreprojenizin her dizinde.

Ancak, en iyi uygulama, .gitignoreproje kök dizininde tek bir dosyaya sahip olmak ve göz ardı etmek istediğiniz tüm dosyaları bu dosyaya şu şekilde yerleştirmektir:

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

.gitignoreDosyayı oluşturduğunuzda, arşivde yeni olan veya değişikliklere sahip olan dosyaları yok sayma işlemi tamamlanma için bekliyor olarak gösterilmeyecektir.

Ayrıca, tüm git depolarınızı yönetecek bir global yerel git ignore dosyanız olabilir.

git config --global core.excludesfile ~/.gitignore_global

Bu alternatif, IDE ile ilgili dosyalar vb. Gibi proje ile ilgili olmayan yok sayılmış dosyalar için özellikle ilginçtir.


1
Bu .gitignore, kaynağa mı yoksa ana / yerel depo kopyanıza mı eklenmelidir?
Adil

1
Yerel olarak (tabii ki onu bir noktada başlangıç ​​noktasına iteceksiniz).
Daniel Ribeiro

21

Git'te dosyaları yok saymak için yaklaşımlar vardır:

  1. Global git ignore: - Bu yaklaşımda, özel kurallarınız makinenizdeki her git dizinine uygulanacaktır. Bu dosya genellikle ~/.gitignore_globalyol altında oluşturulabilir . Bu yaklaşım, işletim sistemi veya diğer herhangi bir günlük kaydı, para yatırma vb. Araçlar tarafından oluşturulan bazı dosya türlerini hariç tutmak istiyorsanız iyidir.
  2. Depo başına git ignore: - Bu yaklaşımda, özel kurallarınız makinenizdeki belirli git dizinine uygulanacaktır. Depo başına yerel kurallar, deponuzdaki .git/info/excludedosyaya eklenebilir . Bu dosya altında belirtilen kurallar işlenmeyecektir, yani başkalarıyla paylaşılmayacaktır. Genellikle bu yaklaşım, yerel olarak oluşturulan dosyaların işlenmesini önlemek için yararlıdır. Örneğin, düzenleyiciniz tarafından oluşturulan dosyalar için.
  3. Yol başına git ignore: - Bu durumda, özel kurallarınız belirli git depolarının alt yoluna uygulanacaktır. .gitignoreBelirli deponuzun herhangi bir alt yolunda oluşturabilirsiniz . Bu yaklaşım genellikle yalnızca belirli bir havuzun belirli bir klasörü altında bazı dosya türlerini yok saymak için kullanılır. Bu dosyalar, diğer yollar ve diğer havuzlar tarafından sürüm kontrolüne eklenebilir.

Bu nedenle, size önerim UserInterfaceState.xcuserstate, tüm depolarınızda kendi özel dosyanızı ( ) yok saymak istiyorsanız , en iyi yaklaşım global git ignore yaklaşımını kullanmaktır. Bununla birlikte, dosyanız yalnızca belirli bir depoda oluşturulmuşsa, depo başına git ignore yaklaşımını kullanabilirsiniz.

Daha fazla bilgi için bu harika blog yazısını okuyabilirsiniz . Ve orada her dile özgü git görmezden gelme kuralları burada kurulabilir . Ve bu web sitesini kullanarak belirli bir dil, araç veya işletim sistemi için genel git yok sayma kurallarını otomatik olarak oluşturabilirsiniz .



12

.gitignoredosyayı nereye koymalıyım ?, .git klasörünün içinde mi?

.gitignoreBir .gitklasörün içinde yok .
Bununla birlikte .git/info/exclude, genellikle bir dosyayı yalnızca bu belirli depo için ( bunun gibi bir takma adla ) hariç tutmak istediğinizde, bir dosyayı yerel olarak dışlamanıza izin veren bir dosyadır :

git config alias.exclude "!sh -c 'echo \"$1\" >> .git/info/exclude' -"
git exclude UserInterfaceState.xcuserstate

Eğer bu dosyada dışlamak gerekirse bütün olarak, benzer proje Elnur Abdurrakhimov belirtilen onun cevabı , küresel kapsama alınmamıştır.

echo UserInterfaceState.xcuserstate >> ~/.gitignore

Ancak, " * .xcuserstate 'i kontrol etmemiz gerekiyor mu? " Da belirtildiği gibi , bu deponun herhangi bir kullanıcısı tarafından göz ardı edilmesi gereken bir dosya türü ise, deponun en üstünde bir .gitignore sürümü kullanırdım, şuna benzer bir içeriğe sahip:

*.xcuserstate 

Bu şekilde, bu deponun herhangi bir kullanıcısı bu dosyanın var olduğunu ve oluşturulduğunu (adı ne olursa olsun) bile fark etmeyecek: hiç görünmeyecek git status.

Ya da tamamen görmezden gelebilirsinizxcuserdata/ (genel .gitignoreolarak veya genel GitHubObjective-C.gitignore dosyası gibi sürümlü bir dosyada).


Sen GIT efsanesin! her zaman cevaplarınız en faydalı olanıdır.
Jad Chahine

@JadChahine Teşekkürler. Yardımcı olmaktan memnunum (en azından bu cevapları yazmak git öğrenmeme yardımcı oluyor)
VonC

@tymac Pek değil;) Düzenli olarak ziyaret ediyorum ( meta.stackexchange.com/questions/122976/… )
VonC

9

Sen gerektiğini değil bir projenin içine alet özgü dosyaları koymak .gitignoredosyanın - o aracı projesinin her geliştirici tarafından kullanılmak üzere gerekli olmadığı sürece.

Bunun yerine, kişisel global .gitignoredosyanızı ana dizininizde oluşturun ve etkinleştirin:

git config --global core.excludesfile ~/.gitignore

Artık geliştirme araçlarınız tarafından oluşturulan dosyaları dosyanıza koyabilirsiniz .gitignore.


6

tipik olarak, .gitignoredosyayı projenin kök dizinine dahil etmek en iyi uygulamasıdır

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.