2013-11-27 29 views
53

Git ortamına yeniyim ve Mac'te SourceTree ile BitBucket kullanıyorum. Şimdi tek yapmak istediğim, son taahhütten bu yana değişiklikleri atmak. Bunu nasıl yapmalıyım? "Değişiklikleri iptal etme" gibi bir şey bulamadım ve son işlemden doğrudan çıkmak işe yaramıyor gibi görünmüyor. GUI veya komut satırı ile yapılan çözümler iyi olacaktır. Teşekkür ederim.SourceTree'deki katılımsız değişiklikler nasıl iptal edilir?

+0

Son işlemi iptal etmek istediğiniz anlamına mı geliyorsunuz? veya bırakın ve bazı test nedenleri için önceki taahhüdü kontrol edin. –

+0

@MohammadAbuShady Sanırım cevap da değil. Son işlemden beri, atmak istediğim bazı değişiklikler yaptım. Son görevimi geri istiyorum. – goldfrapp04

+0

, böylece geri dönmek istediğiniz rahatsız edici değişiklikler var mı? –

cevap

35

Ben stash içinde

git stash 

Bu mağaza kaydedilmemiş olan tüm değişiklikler kullanmak ister. Bu değişiklikleri daha sonra yalnızca git stash drop (veya geri yüklemek için git stash pop) atmak isterseniz. Teknik olarak bu, teknik olarak, değişiklikleri atmak için “uygun” bir yol olmamasına rağmen (diğer cevaplar ve yorumlar da işaret edilmiştir).

+5

'git yanlış ve neden olduğu Hangi cevap --hard HEAD' –

+0

@Roberto sıfırlamak? – smileBot

+3

@cocoanut Cevabımı "yanlış" düşünüyorum çünkü bu "stash" işlevinin kötüye kullanılması. Muhammed'in cevabı tüm değişiklikleri atmanın doğru yolu. – Max

3

Tamam Sorunun zaten soru başlığında yanıtlandığını fark ettim.

için unstage dosyaları bir klasörün içinde dosyaların bir toplu varsa bir dosya

git checkout -- /file/name 

yapılan değişiklikleri geri almak

git reset HEAD /file/name 

Ve kullanmak Eğer bütün klasörü geri alabilirsiniz

git checkout -- /folder/name 

Tüm bu komutların, git statusadresinde görüntülendiğini unutmayın. İşte Sana atmak istediğiniz dosyayı (lar) sağ tıklatın kukla repo oluşturulan ve çalışma dizinle ilgili SourceTree gui tıklayın.Böylece 3 z olanaklar

# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
#  modified: test 
# 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  modified: test2 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  test3 
4

listelenen sonra atmak

tıklayın
100

Maciçin SourceTree, sağ Eğer (çalışma ağaç listede Dosyalarda) atmak istediğiniz dosyaları tıklatın ve Reset seçin.

, Windowsiçin SourceTree, sağ size (Çalışma Kopya Değişiklikler listede) atmak istediğiniz dosyaları tıklatın ve Sil seçin.

gitüzerinde, sadece yaparım:

git reset --hard sürüm dosyalarında yapılan değişiklikleri iptal etmek;

git clean -xdf

gözardı olanlar (x seçenek) dahil olmak üzere yeni (izlenmeyen) dosyalarını silmeye. d, ayrıca, izlenmeyen dizinleri kaldırmak ve zorlamak için f.

+7

Ayrıca sol paneldeki "Çalışma Kopyası" nın tamamını sağ tıklayabilirsiniz (veya Cmd + Shift + R tuşlarına basın) ;-) – Geo

+8

Aynı komutun Mac ve Windows için farklı bir adının olması şaşırtıcıdır. Git GUI (komut satırına kıyasla) zaten yeterince kafa karıştırıcı değildi. – NSTJ

+0

Teşekkürler! Bu Sağ Yanıt ;-) –

2

Kaydedilmemiş dosyada, sağ taraftaki üç noktaya tıklayın. Bir kez tıkladığınızda, daha sonra Discard file adresinin bulunduğu bir popover menüsü görünecektir.

+0

Bu sadece birkaç dosya olduğunda iyidir, ancak çok fazla dosya olduğunda ne olur? –

İlgili konular