Git'te gitignore komutu nasıl kullanılır


120

Git üzerinde ilk kez çalışıyorum. Şubemi github'a ittim ve tüm kitaplığı ve belgeleri github'a itti. Şimdi aynı hatayı tekrar önlemek için ne yapabilirim ve gitignore komutunu nasıl kullanabilirim.


1
.gitignoregit kök dizininizdeki bir dosyadır. Yok saymak istediğiniz dosyalar için ad modellerini ekleyin, dosyalar otomatik olarak yok sayılacaktır.
LonelyWebCrawler

Ben ubuntu'dayım. Git kök dizininin yolunu söyleyebilir misiniz
user1559230

2
Kullandığınız dizindir git init. .gitDizin orada bulunmaktadır.
LonelyWebCrawler

2
Gitignore'un nasıl kullanılacağını bilmeyenler için - gitignore.io'ya gidin, kullandığınız tüm araçları (symfony, CakePHP, ZendFramework, wordpress, grunt, sublime text, netbeans vb.) Yazabilirsiniz. ...) ve sizin için git ignore dosyasını oluşturacaktır. Gitignore'u nasıl kullanacağınızı bilmiyorsanız, bunu öğrenmenin en iyi yolunun bazı iyi kullanım durumlarına bakmak olduğunu düşünüyorum (gitignore.io tarafından oluşturulan gibi. Cmd satırından kullanmak istiyorsanız (geeky yolu) ) bu Öğreticiye bakın: vimeo.com/70609819
DevWL

Yanıtlar:


163

Yani söylediklerinize bağlı olarak, bu dosyalar silmek istemediğiniz ama aynı zamanda göndermek istemediğiniz kitaplıklar / belgelerdir github. Eğer klasörde projesi var diyelim your_projectve doc dizini: your_project/doc.

  1. Proje dizininden kaldırın (aslında silmeden): git rm --cached doc/*
  2. Zaten bir yoksa .gitignore, proje klasörünün bir sağ içini yapabilirsiniz: project/.gitignore.
  3. Put doc/*.gitignore içinde
  4. Dosyayı işlenecek şekilde hazırlayın: git add project/.gitignore
  5. Teslim Et: git commit -m "message".
  6. Değişikliğinizi şuna itin github.

lütfen bana .gitignore dosyasının nasıl yazılacağını söyler misiniz? örneğin, .gitignore dosyasında yok saymak istediğim klasörlerin ve dosyaların yollarının nasıl yazılacağı. Teşekkürler
user1559230

Cevabınız için teşekkürler. Kaydetmeden önce git add -A
user1559230

4
Merhaba, gitignore yalnızca bir düz metin dosyasıdır. Aslında .gitignore (DOTgitignore) 'dir. Git'in yok saymasını istediğiniz dosya / dosya türlerinin adını her satıra bir tane gelecek şekilde girin. Örnek: sujee.net/tech/articles/gitignore
u19964


42

Bir .gitignore dosyanız yoksa, önce şunu kullanın:

touch .gitignore

daha sonra gitignore dosyanıza satır eklemek için bu komut:

echo 'application/cache' >> .gitignore

Yeni satırlara dikkat edin


touchÖnce dosyaya gerek yoktur . dosya zaten mevcut değilse >>eşanlamlıdır >. echoçıktının sonuna bir satırsonu ekler. Bunu onunla durdurabilirsin -n. Çeşitli göz ardı eder ihtiyaç ya çeşitli yankılanırken veya kullanımını yaparsanız -eaşağıdaki gibi: echo -e "**/cache/\n**.pyc" >> .gitignore. Çift yıldız, klasörlere tekrar tekrar giren tüm dosyalarla eşleşir. Her /ihtimale karşı klasörlerin sonunda kullanın .
mazunki

1
@Andrew tl; dr: Göz ardı edilen her dosyayı ile ekleyin echo "file_to_be_ignored" >> .gitignore, başka bir şey yapmaya gerek yok. İle klasör adlarını End /olarak echo "**/modules/" >> .gitignore.
mazunki

Yorumum neden silindi
Andrew

12

git ignore, git'te bir kuraldır. Bir dosyayı adına göre ayarlamak .gitignore , o dizindeki dosyaları ve dosyanın içerdiği kalıplarla eşleşen daha derin dizinleri yok sayacaktır. En yaygın kullanım, en üst düzeyde bunun gibi bir dosyaya sahip olmaktır. Ancak, daha fazla kalıbı yok saymak veya bu dizin ve ardından daha derin olanlar için onları görmezden gelmeyi bırakmak için dizin yapınızın daha derinlerine başkalarını ekleyebilirsiniz.

Benzer şekilde, ile başlayan kalıpları belirleyerek daha derin bir yapıdaki veya belirli bir alt kümedeki bazı dosyaları "yok sayabilirsiniz" (yani, * .log'u yok sayarsınız ancak yine de önemli.log dosyasını izlemek istersiniz) !. Örneğin:

*.log !important.log

tüm günlük dosyalarını yok sayacak, ancak önemli.log adlı dosyaları izleyecek

Göz ardı etmek istediğiniz dosyaları izliyorsanız, silin, kalıbı size .gitignore dosyasına ekleyin ve tüm değişiklikleri ekleyin

# delete files that should be ignored, or untrack them with 
# git rm --cached <file list or pattern>

# stage all the changes git commit
git add -A 

şu andan itibaren deponuz onları takip etmeyecek.

Geçmişinizi temizlemek isterseniz şunları yapabilirsiniz:

# if you want to correct the last 10 commits
git rebase -i --preserve-merges HEAD~10 

ardından her bir kaydı eveya ile işaretleyin edit. Planı kaydedin. Şimdi git, e ile işaretlediğiniz her işlemede durdurarak geçmişinizi yeniden oynatacak. Burada istemediğiniz dosyaları git add -Ave sonra git rebase --continueişiniz bitene kadar silin . Geçmişiniz temizlenecek. İş arkadaşlarınıza zorlamanız gerekeceğinden ve henüz zorlamadıkları şeyleri yeniden ödemeleri gerekeceğinden emin olun.


8

Git kök dizininizde adlı bir dosya var .gitignore. Bu bir dosya, komut değil. Görmezden gelmek istediğiniz dosyaların adlarını girmeniz yeterlidir ve bunlar otomatik olarak yok sayılacaktır. Örneğin, ile biten tüm emacs otomatik kaydetme dosyalarını yok saymak ~istiyorsanız, şu satırı ekleyebilirsiniz:

*~

İstenmeyen dosyaları şubenizden kaldırmak istiyorsanız git add -A, " artık çalışma ağacında olmayan dosyaları kaldıran " seçeneğini kullanabilirsiniz.

Not: "Git kök dizini" olarak adlandırdığım şey git init, ilk kez kullandığınız dizindir . Ayrıca .gitdizini bulabileceğiniz yerdir .


istemediğim
halihazırda aktarılan

4

Bir .gitignore dosyanız yoksa. İle yeni bir tane oluşturabilirsiniz

touch .gitignore

.Gitignore dosyasına aşağıdaki komutu girerek bir klasörü hariç tutabilirsiniz.

/folderName

bu dosyayı git deponuza itin, böylece yeni bir kişi projenizi klonladığında aynı şeyi tekrar eklemek zorunda kalmaz


2

Gitignore git'i kullanmanın birkaç yolu vardır

  • belirli dosya adına göre belirleme. örneğin,
    benioku.txt adlı bir dosyayı yoksaymak için , sadece .gitignore dosyasına benioku.txt yazmanız yeterlidir.
  • dosya uzantısının adını da yazabilirsiniz. Örneğin,
    tüm .txt dosyalarını yok saymak için * .txt yazın.
  • ayrıca tüm bir klasörü göz ardı edebilirsiniz. örneğin
    test adlı klasörü yok saymak istiyorsunuz . Ardından dosyaya test / yazın.

sadece bir .gitignore dosyası oluşturun ve örnek bir gitignore dosyasını yok saymak istediğiniz her şeyi yazın:

# NPM packages folder.
node_modules

# Build files
dist/

# lock files
yarn.lock
package-lock.json

# Logs
logs
*.log
npm-debug.log*

# node-waf configuration
.lock-wscript

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

# Jest Coverage
coverage

.history/

Git dokümantasyonunda daha fazlasını bulabilirsiniz gitignore


1

.gitignore_global Mac'imde bu dosyayı buldum .. ana dizinimde gizliydi, bu yüzden ls -altrgörmek için a yapın.

Git'in görmezden gelmesini istediğim tutulma dosyalarını ekledim. içerik şuna benzer:

 *~
.DS_Store
.project
.settings
.classpath
.metadata

.gitignore dosyasını proje klasörüme koyduğumda, tutulma projemi yerel olarak bozdu. bunun neden olabileceğini ve nasıl önleneceğini biliyor musunuz? şimdilik sadece .gitignore'dan uzak duruyorum.
JesseBoyd

Artık tutulma kullanmıyorum. Inteilji şimdi
j2emanue
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.