Yerel Gıt değişiklikleri kaldırmak için çeşitli yollar
Ben sadece git deposu klonlanmış ve bir şube kontrol edildi. Özgün kopya istemiştim olarak çalıştım ve daha sonra tüm yerel değişiklikleri kaldırmak için karar verdi.
Kısacası, benim yerel değişiklikleri kaldırmak için aşağıdaki iki komutu yapmak zorunda kaldım
git checkout .
git clean -f
Benim yapmak istediğim şey bu
(1) Bu yerel değişiklikleri ortadan kaldırır, ya da başka almak doğru bir yaklaşım lütfen bana doğru yaklaşım bildirin.
(2) git reset --hard
kullanırız hatta bu komut olmadan sıfırlamak mümkün duyuyorum
Teşekkürler
*Çözüm : Büyük bir Düzenleme(ler): 03/26 : * Git özel terminoloji ile muğlak terimler birçok yerini aldı [takip/izlenmeyen/aşamalı/unstaged]
Yerel değişiklikler yaptığımızda dosyaları yalnızca üç kategoride olabilir:
Tip 1. Sahnelenen Takip dosyaları
Tip 2. Unstaged Takip dosyaları
Tip 3. Unstaged İzlenmeyen dosyaları.k.İzlenmeyen bir dosya
- Sahnelenen - çalışma alanı taşınan Bu dizin için/ Eklendi
- Takip değiştirilmiş dosyaları
- - Yeni dosyalar izlenmeyen. Her zaman unstaged. Sahnelenen, izleniyor demektir.
Her hangi komutları yapın:
git checkout .
- Unstaged Takip dosyaları [Tip 2] YALNIZCA Kaldırırgit clean -f
- Unstaged İzlenmeyen dosyaları TEK Tür [3] Kaldırırgit reset --hard
İzlenen ve UnStaged Sahnelenen Takip dosyaları[Tip 1, Tip 2] YALNIZCA Kaldırırgit stash -u
- tüm değişiklikleri [Tip 1, 2, Tip 3 Türü] Kaldırır
Sonuç:
Ya da kullanabileceğimiz açık
(1) combination of `git clean -f` and `git reset --hard`
YA
(2) `git stash -u`
istenilen sonucu elde etmek için.
Not: Saklamak, kelime anlamı '(bir şey) güvenli bir şekilde ve gizlice belirli bir yerde muhafaza edin.' Bu her zaman retreived git stash pop
kullanılarak yapılabilir.
Yani yukarıdaki iki seçenek arasında seçme geliştirici arayın.
Christoph ve Frederik Schøning teşekkür ederim.
Edit: 03/27
Koyarak değer olduğunu düşündümdikkat edin< . em ^/ ' için not git clean -f
git clean -f
Geri dönüş yok. Yaparsın zarar önizleme için -n
--dry-run
kullanın.
Ayrıca dizinleri kaldırmak istiyorsanız, git clean -f -d
çalıştırın
Eğer sadece görmezden dosyaları kaldırmak isterseniz, git clean -f -X
çalıştırın
Eğer göz ardı gibi olmayan yoksayılan dosyaları kaldırmak istiyorsanız, git clean -f -x
çalıştırın
referans : git clean
daha fazla: How do I remove local (untracked) files from my current Git branch?
Edit: 05/20/15
Bu şube ile ilgili yerel atarak tamamlar[Kaldırarak yerel tamamlar]
Bu şube ile ilgili yerel tamamlar, yerel şube aynı yapmak için atmak için ""27 ** bu dal, sadece çalıştırın . Yukarı için
Referans: http://sethrobertson.github.io/GitFixUm/fixup.html
ya git reset --hard origin/master
eğer yerel şube master
[eğer]
Not: 06/12/2015 Budeğilyinelenen olarak işaretli olan başka bir soru. Bu soruyu adresini kaldırmak için yerel GIT değişiklikler [Kaldır bir dosya eklendi, Kaldır değişiklikler eklendi varolan dosya vb ve çeşitli yaklaşımlar; Nerede bu diğer iş parçacığı tek adresi kaldırmak için yerel işlemek. Bir dosya ekledim, ve o tek başına kaldırmak istiyorsanız, o zaman diğer bir ÇOK konu hakkında konuşmaz. Dolayısıyla bu bir diğerinin kopyası değil
Edit: 06/23/15
Nasıl bir döner zaten uzak bir depo itti taahhüt?
$ git revert ab12cd15
Edit: 09/01/2015
Bir önceki yerel şube ve uzak daldan taahhüt silin
Durum: sadece yerel şubesine bir değişiklik yaptı ve hemen uzak şube itti, Aniden fark ettim , Oh hayır! Ben bunu değiştirmek lazım. Şimdi ne yapmamı istiyorsun?
31* *[yerel şubesinden taahhüt silme için]
git push origin HEAD --force
[her iki komutları yürütülmelidir. Uzaktan silme için şube]
Dalı nedir ? Kontrol şu anda şube.
09/08/2015 düzenleyin- Yerel gıt Kaldırbirleştirme:
master
şube olduğum için yeni bir çalışma şube phase2
34 *şube birleşti
$ git status
# On branch master
$ git merge phase2
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 8 commits.
Bu kurtulmak birleştirme Nasıl?s:
Denedim git reset --hard
git clean -d -f
Her ikisi de işe yaramadı.
Tek şey buçalıştıaşağıda olanlar herhangi şunlardır:
$ git reset --hard origin/master
ya
$ git reset --hard HEAD~8
ya
$ git reset --hard 9a88396f51e2a068bb7
[kod - bu tüm birleştirme haller oldu önce var olduğunu sha taahhüt]
CEVAP
Onu/geri geri almak için çalışıyoruz tam olarak ne bağlıdır. the post in Ube's link okuyarak başla. Ama bir cevap girişimi için:
Hard reset
git reset --hard [HEAD]
tamamen sahnelenen ve takip dosyaları için unstaged değişiklikleri kaldırın.
Kendim gibi olduğumda genellikle sabit sıfırlama kullanarak, "sadece, eğer uzaktan kumanda ile tekrar bir klon tam yapsaydım gibi her şeyi geri al". Sadece repo bozulmamış istediğimiz ise bu işe yarar.
Temiz
git clean [-f]
İzlenmez bu dosyaları kaldırın.
Geçici dosyaları kaldırmak için, devam edin ve zaten takip dosyalarında değişiklik sahnelenen unstaged. Çoğu kez, ben de muhtemelen sonunda yapım görmezden kuralı yerine sürekli temizlik - örneğin bin/n klasörleri C# projesi, olan sana olur genelde istiyorsun dışında bırakmak repo hacimden tasarruf, ya da böyle bir şey.
-F (force) seçeneği de silecektir, bu izlenmezveaynı zamanda git ama göz ardı ediliyor kuralı görmezden geliyor. Bu durumda, yukarıda, bir yokmuş kurala hiç iz bin/n klasörler, olsa bile bu klasörler olmayı göz ardı ederek git, kullanarak güç seçeneği olacak kaldırın bunları sizin dosya sistemi. Ara sıra bu dağıtım komut dosyası, örneğin bir kullanım gördüm, ve kodunuzu dağıtmadan önce, ya da her neyse sıkıştırma temiz.
Temiz dosyaları değmeyecek Git, zaten takip ediliyor.
"" . Nokta ödeme
git checkout .
Aslında hiç yazı okumadan önce bu gösterim görmemiştim. Bunun için belgeleri bulmakta zorlanıyorum (belki birisi yardımcı olabilir), ama biraz oynamak, demek gibi:
< . em ^"çalışma ağacımı tüm değişiklikler". Geri Al
I. e. takip dosyaları unstaged değişiklikleri geri al. Görünüşe göre değişiklikler sahnelenen ve yalnız izlenmeyen dosyaları bırakır dokunmaz.
Evinde saklıyor
Bazı cevaplar saklamak söz. Olarak ifade anlamına gelir, ki muhtemelen kullanmak koymak zaman ortada bir şey (hazır değil için bir taahhüt), ve geçici olarak geçiş dalları ya da bir şekilde çalışma üzerinde başka bir devletin kodunuzu, daha sonra geri dönmek için "pis masa". Bu soru için geçerli görmüyorum, ama kesinlikle kullanışlı.
Özetle
Genellikle, eğer kendine güvenen varsa işlemiş ve belki de itti kumanda önemli değişiklikler, eğer sadece oynamak veya benzeri kullanarak git reset --hard HEAD
ardından git clean -f
kesinlikle temiz kodunuzu devlet, olur, vardı sadece klonlanmış ve kullanıma bir şube. Sıfırlama da sahnelenen kaldıracak çok önemli vurgulamak, ama bir değişiklik kaydedilmemiş.Teslim edilmemiş olan her şeyi whipe(izlenmeyen dosyaları, bu durumda hariç, kullanıntemiz).
Diğer tüm komutları orada daha karmaşık senaryolar kolaylaştırmak için, "felaket şeyler" tabi :) . bir ayrıntı vardır
Sorunuzun hissediyorum 1# #2 sonuç kaplı, ama son olarak: asla git reset --hard
kullanma ihtiyacı bulunan sebep hiç bir şey sahnelenen vardı. Bir değişiklik sahnelenen vardı, ne git checkout .
ne git clean -f
döndürüldü.
Bu kapaklar umut.
Yerel dizinden silmeden Git deposu bir...
Nasıl bir Git branch yerel kaydedilmem...
Kod yollar anahtarı ortadan kaldırmak ...
Nasıl yerel değişiklikleri atmak için?...
Windows toplu iş dosyasını aramak için...