Global Git yoksay


841

Git'i bazı dosyaları genel olarak yok sayacak şekilde ayarlamak istiyorum.

.gitignoreAna dizinime ( /Users/me/) bir dosya ekledim ve şu satırı ekledim:

*.tmproj

Ama bu tür dosyaları görmezden gelmiyor, yanlış yaptığım hakkında bir fikrim var mı?


7
GitHub'ın yok sayma önerilerini de kontrol etmek isteyebilirsiniz - help.github.com/articles/ignoring-files ; ortak görmezden gelme kalıpları deposu var
drzaus

6
Ayrıca, bireysel projeler içinde yalnızca .gitignore kullanmayı düşünebilirsiniz. Aksi takdirde, projeyi (veya bir başkasını) yeni bir sistemde klonlarsanız, her seferinde küresel dışlama dosyasını ve yapılandırmasını yeniden oluşturmanız gerekir.
Stan Kurdziel

25
Projenin oluşturduğu cahil dosyalar proje .gitignore dosyasında olmalıdır, makinenizdeki şeylerin oluşturduğu cahil dosyalar global .gitignore'a (editör / IDE geçici dosyaları ve benzeri gibi) gitmelidir.
Pylinux

2
Python sanal ortam dizinleri, genel veya yerel dışlama dosyamdaki girişler için yaygın bir kullanım durumudur.
Güveç

10
@Pylinux Aslında, git-scm , kişisel IDE ve iş akışına özgü şeyler repodaki izlenmemiş dosyaya gidebilir .git/info/exclude, bu nedenle genel dosyaya gitmesi gerekmez. Ayrıca, varsayılan ve otomatik genel gitignore dosyasıdır $HOME/.config/git/ignore.
Acumenus

Yanıtlar:


1421

Genel core.excludesfileyapılandırma dosyanızı, bu genel yoksayma dosyasını gösterecek şekilde ayarlamanız gerekir .

Örneğin

* nix veya Windows git bash:

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

Windows cmd:

git config --global core.excludesfile "%USERPROFILE%\.gitignore"

Windows PowerShell:

git config --global core.excludesfile "$Env:USERPROFILE\.gitignore"

Windows için konuma ayarlanır C:\Users\{myusername}\.gitignore. Yapılandırma değerinin doğru olduğunu aşağıdakileri yaparak doğrulayabilirsiniz:

git config --global core.excludesfile

Sonuç, kullanıcı profilinizin genişletilmiş yolu olmalıdır .gitignore. Değerin, genişletilmemiş %USERPROFILE%dizeyi içermediğinden emin olun .

Önemli : Yukarıdaki komutlar yalnızca git'in kullanacağı yoksay dosyasının konumunu ayarlayacaktır. Dosya yine de bu konumda manuel olarak oluşturulmalı ve yoksay listesiyle doldurulmalıdır. ( muruge yorumundan)

Komut hakkında https://help.github.com/articles/ignoring-files/#create-a-global-gitignore adresinden okuyabilirsiniz.


2
Yani kadar zaman içinde olmasın da HEADya da endeks dosya kez izlenen mediğine fark etmez gerekir. Eğer çıktısını eklemek yapmanız yararlı olabilir git status, git config core.excludesfilesorunuzun.
CB Bailey

2
Genel yoksayma dosyasına yorum eklemek için #içerideki satırların başında kullanabilir miyim ~/.gitignore?
Dror

9
Resmi Git Windows araç setinin son sürümleri bunun yerine * nix sözdizimini kullanır; bu satır çalışmazsa, bunun yerine * nix olanını deneyin.
Andy Jones

9
%USERPROFILE%Değişkeni kullanarak işe yarayamadım. * Nix dizin ayırıcılarını kullanarak dosyanın tam yolunu girmek zorunda kaldım. ör. core.excludesfile C: /Users/User/.gitignore
Vince

21
% USERPROFILE% değişkeni ile çalışamadı. Git konumuna --global core.excludesfile '~ / .gitignore' kullanmak zorunda kaldım. C: / users / {myusername} /. Gitignore. Ayrıca yukarıdaki komut sadece git'in kullanacağı yoksay dosyasının konumunu ayarlayacaktır. Dosya yine de bu konumda manuel olarak oluşturulmalı ve yoksay listesiyle doldurulmalıdır.
muruge

301

Global excludes dosyasını yeniden yapılandırmadan önce, şu komutu kullanarak o anda yapılandırılmış olanını kontrol etmek isteyebilirsiniz:

git config --get core.excludesfile

Benim durumumda, koştuğumda, global dışlama dosyamın

~ / .Gitignore_global
ve orada zaten listelenen birkaç şey vardı. Dolayısıyla, verilen soru söz konusu olduğunda, önce mevcut bir dışlama dosyasını kontrol etmek ve yeni dosya maskesini buna eklemek mantıklı olabilir.


2
bu harika çalışıyor. Global gitignore dosyanızı her zamanki gibi kurun; satır başına bir giriş.
Maarten Hartman

237

Diğer yanıtlar doğru olsa da, global yapılandırma değerini ayarlarken, global git ignore dosyası için varsayılan bir git konumu vardır:

* Nix:

~/.config/git/ignore

Pencereler:

%USERPROFILE%\git\ignore

gitDizin ve ignoredosya oluşturmanız gerekebilir, ancak daha sonra global yok saymanızı bu dosyaya koyabilirsiniz ve hepsi bu kadar!

Kaynak

Bir desenin yerleştirileceği dosya, desenin nasıl kullanılması gerektiğine bağlıdır.

...

  • Bir kullanıcının Git'in her durumda yoksaymasını istediği kalıplar (örneğin, kullanıcının seçtiği düzenleyici tarafından oluşturulan yedekleme veya geçici dosyalar) genellikle core.excludesFilekullanıcının belirttiği dosyaya gider ~/.gitconfig. Varsayılan değeri $ XDG_CONFIG_HOME / git / ignore şeklindedir. $ XDG_CONFIG_HOME ayarlanmamış veya boşsa, bunun yerine $ HOME / .config / git / ignore kullanılır.

1
Bu harika; Bunu bilmiyordum ... ancak bu oluşturulan bir dosya değil mi? Güncelleme / yeniden yükleme işleminin üzerine yazılabilir mi?
danielsdesk

1
Dosyanın belirli gitkomutları çalıştırarak oluşturulduğunu / değiştirildiğini düşünüyorum . Her kullanıcının dizinindeki bir ayarlar dosyası olduğundan, üzerine yazılması gerektiğini düşünmüyorum.
Steve Jorgensen

1
Ne var ki ben bu -The belgelerine bir yardım makalesi bulamadık, bu kabul cevap olmalıdır katılıyorum ( help.github.com/articles/ignoring-files )
AVProgrammer

1
@AVProgrammer Cevabı, kaynak belgenin düzenlenme biçimindeki değişikliği yansıtacak şekilde düzenledim.
Steve Jorgensen

7
Görünüşe göre Windows'ta da yolu var ~/.config/git/ignore.
suriv

40

Sıfırdan global gitignore oluşturmak için:

$ cd ~
$ touch .gitignore_global
$ git config --global core.excludesfile ~/.gitignore_global
  1. İlk satır dizini olarak değiştirir C:/Users/User
  2. Bundan sonra .gitignore_globaluzantısına sahip boş bir dosya oluşturursunuz
  3. Ve son olarak global ayarı bu dosyaya aldırma.
  4. Sonra bir tür not defteri ile açmalı ve gerekli yoksayma kurallarını eklemelisiniz.

18

Gönderen burada .

Reponuzda .gitignore adlı bir dosya oluşturursanız, işlenecek dosyalara bakarken kurallarını kullanır. Git'in, bu dosyaya yok saymak için bir kural eklenmeden önce izlenmiş olan bir dosyayı yok saymayacağını unutmayın. Böyle bir durumda, dosyanın izlemesi kaldırılmalıdır, genellikle:

git rm --cached filename

Sizin durumunuz mu?


Küresel olarak görmezden gelmeye çalışıyorum, ki bu olmuyor !!
Hafif Fuzz

Linux'ta @MildFuzz core.excludesfiledosyası bir .gitignoredosyadan farklı yorumlanmış gibi görünüyor . Eğer bir dizinin tamamını dikkate almak istemiyorsanız gibi dizinin adını koymak .vscode/yerine.vscode/*
Hevesli Dev

11

Unix sistemi kullanıyorsanız, sorununuzu iki komutta çözebilirsiniz. Burada ilk başlatma yapılandırır ve ikinci dosya göz ardı edilecek bir dosya ile değiştirir.

$ git config --global core.excludesfile ~/.gitignore
$ echo '.idea' >> ~/.gitignore

10
  1. Ana dizininizde bir .gitignore dosyası oluşturun
touch ~/.gitignore
  1. Dosya ekleyin ( klasörler tanınmıyor )

Misal

# these work
*.gz
*.tmproj
*.7z

# these won't as they are folders
.vscode/
build/

# but you can do this
.vscode/*
build/*
  1. Git'in zaten global bir gitignore olup olmadığını kontrol edin
git config --get core.excludesfile
  1. Git'e dosyanın nerede olduğunu söyle
git config --global core.excludesfile '~/.gitignore'

Voila !!


"klasörler tanınmıyor" - Bu sadece yanlış, klasörler iyi çalışıyor ...
TobiX

7

Komutu çalıştırmanın

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

global dosyayı kuracak, ancak OLUŞTURMAZ. Windows için Kullanıcılar dizininde .gitconfigdosya olup olmadığını kontrol edin ve tercihlerinize göre düzenleyin. Benim durumumda:

[core]
  excludesfile = c:/Users/myuser/Dropbox/Apps/Git/.gitignore

3

Bir görmezden am güçlü .tmprojya dahil ederek dosyayı .tmprojya *.tmprojbenim de /users/me/.gitignore-globaldosyaya.

Dosya adının .gitignore-globalolmadığını unutmayın .gitignore. Bu ekleyerek işe yaramadı .tmprojya *.tmprojadlı bir dosyada .gitignoreyer /users/medizine.


4
core.excludesfileYapılandırmanızla eşleştiği sürece global ignore dosyanızı ne çağırdığınız önemli değildir .
CB Bailey

Ah! İyi bir nokta @CharlesBailey. Ancak bu yazarın kontrol etmek isteyebileceği bir şey olabilir. Nedeni .tmprojkullanıcının çünkü dosya gözardı almıyor olabilir excludesfileolmayacak .gitignore.
Sri Sankaran

Sanırım kullanıcının farkına varacak kadar akıllı olacağını düşündü.
WORMSS

2

Bunun için bir hariç tutma dosyası oluşturmalısınız. Check out bu özünü oldukça açıktır.

Şunlardan birini de-indeksi gerekebilir olsa soruyu ele almak için .tmproj(Zaten dizine ekledikten ise) dosyasını ile git rm --cached path/to/.tmprojveya git addve commitsizin .gitignoredosyayı.


Bunu dünya çapında yapmaya çalışıyorum, sadece repo başına değil
Mild Fuzz

Evet, özünde bağlandığım şey bu. Orijinal soru biraz kafam karıştı. Yaptın mı git rm --cached?
Nic

evet, denedim. Bana tavsiye edilen tüm tavsiye takip var görünüyor! Neyi kaçırıyorum?
Hafif Fuzz

Önerildiği gibi, git durumunuzu ekler ve soruya bilgileri hariç
tutarım

2

linux I için pencere alt sisteminde tarafından alt sistemi köküne gitmek zorunda kaldı cd ~/sonra touch .gitignoreve sonra orada küresel gitignore yapılandırmasını güncelleştirmek.

Umarım birine yardımcı olur.


0

VSCODE kullanıyorsanız, görevi sizin yerinize halletmek için bu uzantıyı alabilirsiniz. Çalışmanızı her kaydettiğinizde çalışma alanınızı izler ve vscode ayarlarınızda belirttiğiniz dosya ve klasörleri otomatik olarak yok saymanıza yardımcı olur. Json ignoreit (vscode uzantısı)

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.