2012-03-17 22 views
9

Sürekli bütünleşmem için, git sanal alanımda hiçbir bozuk dosya bulunmadığından emin olmak istiyorum ve dosyaların hiçbiri yanlışlıkla değiştirilmedi.Temiz git sanal alanını elde etmenin en etkili yolu nedir?

Ben yaklaşık git reset --hard HEAD biliyorum ve bu sorunun bir kısmını çözer. Ama sanırım yapmak istediğim, tüm izlenmeyen ve yok sayılan dosyaları silmektir. Bunu kaba kuvvet yolunu yapabilirim ve sadece

Bunu yapmak için daha verimli bir yol olmalı. Herhangi bir fikir?

+2

'git --hard HEAD' +' git temiz -d -f' sıfırlamak ? – madth3

+0

@ madth3, teşekkürler, bence gerçekten işe yarıyor! – mpontillo

cevap

12

(kuşaklar için genişletilmiş)

Senin sorunun ikiye ayrılabilir: işlemek son kendi durumuna değiştirilmiş dosyaları dönen ve depoda ait olmayan herhangi bir ekstra dosyaları kaldırarak:

git reset --hard HEAD 

git clean -f -d -x 
(onlar kararlı olmak sahne olsa bile) herhangi bir değişiklik kaldırarak, geri onlar HEAD sahip duruma dosyalarınızı alacak

, yok sayılan dosyalar da dahil olmak üzere, programlanmamış dosyalar veya dizinleri kaldıracaktır (@Jefromi'ye teşekkürler)

+0

Teşekkürler; Git temiz komutunu unuttum. Bu soruyu yazarken deja vu aldığımı biliyordum. =) – mpontillo

+0

Eh, 'reset' komutunu daha sık kullandım ama gereksinimi tamamlamak için' clean''i aradım kolaydı. – madth3

+1

'-x' ile git-clean'i kullanmak isteyeceksiniz; Bu da yok sayılan dosyaları siler. Bu göz ardı edilen dosyalar ara ürün ürünleri ve oluşturma süreciniz mükemmel değilse, bu önemli olabilir. – Cascabel

-1

CI daha iyi bir çözüm için repo'nun ayrı bir kopyası değil mi?

Sadece getirme

| your-işçi repo klon (herhangi bir eser ve yerel bir değişiklik olmadan) CI-iş önce tüm taahhüt değişiklikler

+0

Ne demek istiyorsun? "ayrı klon"? Gigabayt konuşuyoruz, bu yüzden her seferinde tekrar klonlamak istemiyorum. – mpontillo

İlgili konular