SourceTree'de taahhüt edilmeyen değişiklikler nasıl iptal edilir?


83

Git ortamında yeniyim ve Mac'te SourceTree ile BitBucket kullanıyorum. Şimdi tek yapmak istediğim, son işlemden bu yana yapılan değişiklikleri atmak. Bunu nasıl yapmalıyım? "Değişiklikleri at" gibi bir şey bulamadım ve son işlemden doğrudan çekmek işe yaramıyor gibi görünüyor. GUI veya komut satırı ile yapılan çözümler iyi olacaktır.


Yani son taahhüdü geri almak mı istiyorsunuz? veya örneğin bazı test nedenlerinden ötürü onu bırakıp önceki işlemi kontrol et?
Mohammad AbuShady

1
@MohammadAbuShady Sanırım cevap da değil. Son işlemden bu yana, iptal etmek istediğim bazı değişiklikler yaptım. Son taahhüdümüzü geri istiyorum.
goldfrapp04

yani geri döndürmek istediğiniz beklenmedik değişiklikleriniz mi var?
Mohammad AbuShady

Buradaki yanıtların hiçbiri, Sourcetree'min üst kısmındaki sinir bozucu 'Gerçekleştirilmemiş değişiklikler' girişini kaldırmama yardımcı olmadı. Ve tek tek atılabilecek çok fazla aşamalı olmayan dosya vardı. Buradaki cevap işe yaradı: stackoverflow.com/questions/14075581/…
PVS

Hazırlanmamış Dosyalar listesindeki öğeye sağ tıkladığımda bağlam menüsü seçenekleri arasında kafam karıştı; Discard(Shift + Ctrl + R) ve Remove(Ctrl + Del) sanırım Discardgibi değişiklikler geri alınacak git reset --hardve Removedosya ve sahne o silme silecektir.
The Red Pea

Yanıtlar:


62

Kullanmayı severim

git stash

Bu tüm kaydedilmemiş değişiklikleri saklar stash . Bu değişiklikleri daha sonra atmak git stash drop(veya git stash popgeri yüklemek için) istiyorsanız .

Bu teknik olarak değişiklikleri göz ardı etmenin "uygun" yolu olmasa da (diğer yanıtların ve yorumların da işaret ettiği gibi).

SourceTree : Üst çubukta 'Stash' simgesine tıklayın, adını yazın ve oluşturun. Ardından soldaki dikey menüde tüm Stash'i "gösterebilir" ve sağ tıklama menüsünde silebilirsiniz. ST'de tüm dosyaları bir defada atmanın muhtemelen başka bir yolu yoktur.


7
Her şeyi bir git reset --hard HEAD
kenara

4
@cocoanut Sanırım cevabım "yanlış" çünkü bu stashişlevin kötüye kullanılması . Mohammad'in cevabı, tüm değişiklikleri göz ardı etmenin uygun yoludur.
Maksimum

Evet, ayrıca kısayolun nerede olduğunu göremediğim için.
Roberto

3
Fikrinizi değiştirirseniz, değişikliklerinizi geri yüklemeniz için size son bir şans verdiği için bu yöntemi seviyorum. Nadiren yaparım reset --hard, ancak yeni başlamak için sık sık değişikliklerimi saklar ve daha sonra ihtiyacım olmadığına karar verirsem zulayı bırakırım.
Maksimum

Bu yöntem, yeni sürülmemiş dosyaları silmemiştir. Roberto'nun reset ve clean kullanma yöntemi bu durumda daha iyi sonuç verdi.
Gabriel Jensen

143

On SourceTree için Mac , sağ (içinde atılması istediğiniz dosyaları tıklayın çalışma ağaç Dosyaya'yı listesinde) ve seçim Sıfırlama .

On SourceTree için Windows'un sağ sen (de atmak istediğiniz dosyaları tıklayın Çalışma Kopya Değişiklikler listesinde) ve seçim Sil .

On Git , sadece yaparım:

git reset --hard sürümü belirlenmiş dosyalarda yapılan değişiklikleri atmak için;

git clean -xdfgöz ardı edilenler dahil yeni ( izlenmeyen ) dosyaları silmek için ( xseçenek). dizlenmeyen dizinleri de kaldırmak ve fzorlamaktır.


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

14
Aynı komutun Mac ve Windows için farklı bir adı olması şaşırtıcı. Sanki Git GUI (komut satırına kıyasla) yeterince kafa karıştırıcı değilmiş gibi.
NSTJ

Teşekkürler! Bunun Doğru Cevap Olarak
Oylanması

@NSTJ: Kabul edildi ... Git araçlarıyla ilgili olarak "sıfırlama" ve "atma" gibi terimlere tutarlı bir tanım atama olasılığına olan güvenini oldukça iyi sarsıyor. Bu, geniş çapta üzerinde mutabık kalınmasını bekleyebileceğiniz bir tanım.
LarsH

7

Hazırlanmamış dosyada, sağ taraftaki üç noktaya tıklayın. Tıkladığınızda, daha sonra yapabileceğiniz bir açılır menü görünecektir Discard file.


2
Bu sadece birkaç dosya olduğunda sorun değil, ama çok fazla dosya olduğunda ne olur?
Itai Spector

4

Tamam, sadece soru başlığında sorumun cevaplandığını fark ettim.

Dosyaların aşamalarını kaldırmak için şunu kullanın:

git reset HEAD /file/name

Ve bir dosyadaki değişiklikleri geri almak için

git checkout -- /file/name

Bir klasörün içinde toplu iş dosyalarınız varsa, tüm klasörü geri alabilirsiniz.

git checkout -- /folder/name

Tüm bu komutların zaten görüntülendiğini unutmayın. git status

Burada sahte bir depo oluşturdum ve 3 olasılığın hepsini listeledim

# 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

3

Kaynak ağacından çalışma dizinine tıklayın, atmak istediğiniz dosya (lar) a sağ tıklayın, ardından Sil seçeneğine tıklayın.


2

Aşağıdaki gibi yapın,

  • Tıklamak commit
  • Basarak tüm seçiniz CMD+Asen istediğinizdelete or discard
  • Right click silmek istediğiniz seçili onaylanmamış dosyalarda
  • Açılır Removelisteden seçin

1

Tamam, Windows kaynak ağacında bu basit, macOS'ta bir süre ben de baktım ..

Kaynak ağacındayken , tek tek dosyaları VEYA TÜMÜNÜ atmanıza izin veren gizli bir açılır pencere gösterilirken Command + Shift + R tuşlarına tıklayın ! Bu neden gizli? Asla bilemeyeceğiz .. ama işe yarıyor!

görüntü açıklamasını buraya girin


0

Onun Ctrl+ Shift+r

Benim için hepsini atmak için tek bir seçenek vardı.

görüntü açıklamasını buraya girin

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.