Yerel Git değişikliklerini kaldırmanın çeşitli yolları


625

Bir git deposunu klonladım ve bir şubeye baktım. Üzerinde çalıştım ve daha sonra orijinal kopyayı istediğim gibi tüm yerel değişikliklerimi kaldırmaya karar verdim.

Kısacası, yerel değişikliklerimi kaldırmak için aşağıdaki iki komutu yapmak zorunda kaldım

git checkout .

git clean -f

Sorum şu,

(1) Bu, yerel değişikliklerden kurtulmada doğru yaklaşım mı yoksa lütfen bana doğru yaklaşımı bildirin.

(2) git reset --hardbu komut olmadan bile sıfırlayabildiğim için ne zaman kullanacağız

Teşekkürler

* Çözüm: Büyük Düzenlemeler: 03/26: * Belirsiz terimlerin çoğunu git'e özgü terminoloji ile değiştirildi [izlenen / izlenmeyen / aşamalı / yerleştirilmemiş]

Yerel değişiklikler yaptığımızda yalnızca üç dosya kategorisi olabilir:

Tür 1. Aşamalı İzlenen dosyalar

Tür 2. İşaretlenmemiş İzlenen dosyalar

Tür 3. İşaretlenmemiş İzlenmemiş dosyalar, yani İzlenmemiş dosyalar

  • Aşamalı - Hazırlama alanına taşınanlar / Dizine eklendi
  • İzlenen - değiştirilen dosyalar
  • İzlenmemiş - yeni dosyalar. Her zaman işaretsiz. Sahnelendiğinde bu, izlendikleri anlamına gelir.

Her komutun yaptıkları:

  1. git checkout . - SADECE İşaretlenmemiş İzlenen dosyaları kaldırır [Tip 2]

  2. git clean -f - SADECE İzlenmemiş İzlenmemiş dosyaları kaldırır [Tip 3]

  3. git reset --hard - YALNIZCA Aşamalı İzlenen ve Denetlenmeyen İzlenen dosyaları kaldırır [Tip 1, Tip 2]

  4. git stash -u - Tüm değişiklikleri kaldırır [Tip 1, Tip 2, Tip 3]

Sonuç:

Her ikisini de kullanabileceğimiz açık

(1) combination of `git clean -f` and `git reset --hard` 

VEYA

(2) `git stash -u`

istenen sonucu elde etmek için.

Not: Stashing, kelimesi 'Belirli bir yerde güvenli ve gizli bir şekilde (bir şey) saklayın' anlamına gelir. Bu her zaman kullanılarak alınabilir git stash pop. Yukarıdaki iki seçenek arasında seçim yapmak geliştiricinin çağrısıdır.

Teşekkürler Christoph ve Frederik Schøning.

Düzenleme: 03/27

Ben ' dikkat ' notu koymaya değer olduğunu düşündümgit clean -f

git clean -f

Geri dönüş yok. Yapacağınız hasarı önizlemek için -nveya --dry-rundüğmesini kullanın .

Dizinleri de kaldırmak istiyorsanız, git clean -f -d

Yalnızca yok sayılan dosyaları kaldırmak istiyorsanız, git clean -f -X

Yok sayılan ve yok sayılan dosyaları kaldırmak istiyorsanız, git clean -f -x

reference: daha fazla bilgi git clean: Geçerli Git çalışma ağacından yerel (izlenmemiş) dosyaları nasıl kaldırırım?

Düzenleme: 05/20/15

Bu daldaki tüm yerel taahhütleri silme [Yerel taahhütleri kaldırma]

Bu daldaki tüm yerel taahhütleri atmak için, yerel dalın bu dalın "yukarı akış" değeriyle aynı olmasını sağlamak için, git reset --hard @{u}

Referans: http://sethrobertson.github.io/GitFixUm/fixup.html

veya git reset --hard origin/master[yerel şube varsa master] yapın

Not: 2015/06/12 Bu değil yinelenen olarak işaretlenmiş diğer SO sorunun bir kopyası. Bu soru, yerel GIT değişikliklerinin nasıl kaldırılacağını [eklenen bir dosyayı kaldırma, mevcut dosyaya eklenen değişiklikleri kaldırma vb. Ve çeşitli yaklaşımları; Diğer SO iş parçacığında yalnızca yerel işlemin nasıl kaldırılacağı ele alınmaktadır. Bir dosya eklediyseniz ve bunu tek başına kaldırmak istiyorsanız, diğer SO iş parçacığı bu konuda tartışmaz. Bu yüzden bu diğerinin kopyası değil]

Düzenleme: 23/06/15

Zaten uzak bir depoya yönlendirilmiş bir taahhüt nasıl geri alınır?

$ git revert ab12cd15

Düzenleme: 09/01/2015

Yerel şubeden ve uzak şubeden önceki bir taahhüdü silme

Vaka: Sadece yerel şubenizde bir değişiklik yaptınız ve hemen uzak şubeye ittiniz, Aniden fark ettiniz, Oh hayır! Bu değişikliğe ihtiyacım yok. Şimdi ne yapmalı?

git reset --hard HEAD~1 [bu taahhüdü yerel şubeden silmek için]

git push origin HEAD --force[her iki komutun da yürütülmesi gerekir. Uzak şubeden silmek için]

Şube nedir? Şu anda teslim alınmış şubesidir.

Düzenle 09/08/2015 - Yerel git birleştirmeyi kaldır :

Ben duyuyorum masterşube ve birleştirilmiş masteryeni çalışma şube ile şubephase2

$ git status
# On branch master

$ git merge phase2

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 8 commits.

S: Bu birleşmeden nasıl kurtuluruz? Denendi git reset --hard ve git clean -d -f İkisi de çalışmadı.

İşe yarayan tek şey aşağıdakilerden biridir:

$ git reset --hard origin/master

veya

$ git reset --hard HEAD~8

veya

$ git reset --hard 9a88396f51e2a068bb7 [sha taahhüt kodu - bu, tüm birleştirme işlemleriniz gerçekleşmeden önce mevcut olan koddur]


1
Sanırım bu konu sorularınızı cevaplayabilir: stackoverflow.com/questions/1146973/…
Saucier

1
"git stash" yaptığınız tüm değişiklikleri silecektir.
John Ballinger

1
Güzel özet! Başka bir dosya kategorisi eklerdim: "4. Gözardı edilen dosyalar." git stash -a[veya --all] yok sayılan ve izlenmeyen dosyaları da saklar. git clean -xyok sayılan dosyaları da temizler. git clean -Xyalnızca yok sayılan dosyaları temizler.
Jerry101

2
@JavaDev Sorunuz daha çok bir cevap gibiydi .. Düzenlemeye devam ettiğiniz ve tüm cevapları derlediğiniz için teşekkür ederiz.
Bhavuk Mathur

1
teşekkürler yerel değişiklikleri tersine çevirmek için 4 komutun hepsini koştu
Vincent Tang

Yanıtlar:


505

Her şey tam olarak geri almaya / geri almaya çalıştığınıza bağlıdır. Ube'nin bağlantısındaki yazıyı okuyarak başlayın . Ama bir cevap vermeye çalışmak:

Donanımdan sıfırlama

git reset --hard [HEAD]

izlenen dosyalardaki tüm aşamalı ve etiketsiz değişiklikleri tamamen kaldırın.

Kendimi sık sık sert sıfırlama kullanarak buluyorum, "sadece uzaktan kumandadan tam bir yeniden klonlama yapmışım gibi her şeyi geri al" gibi. Repo bozulmamışınızı istediğiniz durumda, bu işe yarayacaktır.

Temiz

git clean [-f]

İzlenmeyen dosyaları kaldırın.

Geçici dosyaları kaldırmak için, ancak önceden izlenen dosyalarda aşamalı ve işaretsiz değişiklikleri saklayın. Çoğu zaman, muhtemelen tekrar tekrar temizlemek yerine bir yoksayma kuralı oluştururum - örneğin bir C # projesindeki bin / obj klasörleri için, genellikle yerden tasarruf etmek için deponuzdan veya böyle bir şeyden hariç tutmak istediğinizde.

-F (force) seçeneği de, izlenmeyen ve ignore-rule ile git tarafından yok sayılan dosyaları da kaldıracaktır . Yukarıdaki durumda, bin / obj klasörlerini asla takip etmemek için bir ignore kuralıyla, bu klasörler git tarafından yok sayılsa bile, force-option kullanıldığında dosya sisteminizden kaldırılır. Örneğin, komut dosyası dağıtımını yaparken, bunun için bir kullanım gördüm ve dağıtmadan, sıkıştırmadan veya başka bir şey yapmadan önce kodunuzu temizlemek istiyorsunuz.

Git clean zaten izlenmekte olan dosyalara dokunmaz.

Checkout "nokta"

git checkout .

Gönderinizi okumadan önce bu notasyonu hiç görmemiştim. Bunun için belge bulmakta zorlanıyorum (belki birileri yardımcı olabilir), ancak biraz oynamaktan, şu anlama gelir:

msgstr "çalışma ağacımdaki tüm değişiklikleri geri al".

İzlenen dosyalardaki değişmemiş değişiklikleri geri alır. Görünüşe göre aşamalı değişikliklere dokunmuyor ve izlenmeyen dosyaları yalnız bırakıyor.

stashing

Bazı cevaplar zuhurdan bahseder. İfadeden anlaşılacağı gibi, muhtemelen bir şeyin ortasındayken (bir taahhüt için hazır değilken) saklamayı kullanırsınız ve daha sonra "dağınıklığınıza" geri dönmek için şubeleri geçici olarak değiştirmeniz veya bir şekilde kodunuzun başka bir durumunda çalışmanız gerekir. sıra". Bunun sorunuz için geçerli olduğunu görmüyorum, ancak kesinlikle kullanışlı.

Sonuç olarak

Genel olarak, taahhüt ettiğinizden ve belki de uzak önemli değişikliklere ittiğinizden eminseniz, sadece etrafta oynuyorsanız veya benzerlerini kullanıyorsanız, git reset --hard HEADbunu kullanmak git clean -f, kodunuzu devlete kesinlikle temizleyecek, eğer klonlanmış olsaydı ve bir şubeden çıkış yaptık. Sıfırlamanın ayrıca aşamalı, ancak taahhüt edilmemiş değişiklikleri de kaldıracağını vurgulamak gerçekten önemlidir. Taranmamış olan her şeyi silecektir (izlenmeyen dosyalar hariç, bu durumda temiz kullanın ).

Diğer tüm komutlar, "geri alma işlerinin" ayrıntı düzeyinin gerektiği daha karmaşık senaryoları kolaylaştırmak için vardır :)

1 numaralı sorunuzun kapandığını hissediyorum, ama son olarak 2 numaralı sonuca varmak için: kullanma gereğini git reset --hardhiç bulamamanızın nedeni hiçbir şey sahnelememiş olmanızdı. Bir değişiklik yapmış olsaydınız, bunu ne git checkout .de git clean -fgeri çevirirdiniz.

Umarım bu kapsar.


Kullandığınız nedenden dolayı teşekkür ederiz git reset --hard. Ben denedim ve evet .. dizin (aşamalandırma) eklenen bu dosyalar sadece sonra kaldırıldı git reset --hardve varsayılan git reset --hardolarak olduğunu varsayalım git reset --hard head. Bu bağlantı da yardımcı oldu gitready.com/beginner/2009/01/18/the-staging-area.html
örümcek adam

git stash -uBurada neden en anlamlı olduğunu düşündüğüm cevabımı geliştirdim .
Christoph

2
İkinize de teşekkür ederim. Cevabı özetledim ve sorumun içine gömdüm. Christoph bana ne bildirmek git stash -uve nasıl pop, ancak Frederik beni sıfırlama sert ve kombinasyonunu kullanarak bize git reset --hardve git clean -fve neden olmasın stashbazı senaryolarda tercih edilir. Şimdi lütfen hangisinin Cevap olarak işaretlemem gerektiğine karar vermeme yardım edin :), ikisi de cevaplarım.
örümcek adam

3
.repo'nun kökü olabilecek geçerli çalışma dizinine atıfta bulunan bir pathspec. Git-scm.com'dan: git checkout [<tree-ish>] [--] <pathspec>…çalışma ağacındaki adlandırılmış yolları dizin dosyasından veya adlandırılmış bir <tree-ish> öğesinden güncelleştirir.
Jerry101

3
Hem git reset --hardve git clean -dfxbenzerlerinin yıkıcı olduğu asla vurgulanmaz . Her neyse, lütfen küçük harfleri headcevapta düzeltin, ya büyük harf olmalı ya HEADda hiç mevcut olmamalıdır .
Pavel Šimerda

25

Şu anda bir yanıt eklemenin nedeni:

Şimdiye kadar ilk sorumun sonucunu ve cevaplarını ekledim, soruyu çok uzun hale getirdim, dolayısıyla ayrı cevaba geçtim.

Ben de başkalarına yardım etmek için git bana yardımcı daha sık kullanılan git komutları ekledim .

Temel olarak tüm yerel taahhütleri temizlemek $ git reset --hardve $ git clean -d -f


Herhangi bir taahhütte bulunmadan önce ilk adım, taahhüdünüzle birlikte görünen kullanıcı adınızı ve e-postanızı yapılandırmaktır.

# İşlemlerinize eklenmesini istediğiniz adı ayarlar

$ git config --global user.name "[name]"

# İşlemlerinize atanmasını istediğiniz e-postayı ayarlar

$ git config --global user.email "[email address]"

# Küresel yapılandırmayı listele

$ git config --list

# Uzak URL'yi listeleyin

$ git remote show origin

#Durumu kontrol et

git status

# Tüm yerel ve uzak şubeleri listeleyin

git branch -a

#cc yerel bir şube oluşturun ve bu şube üzerinde çalışmaya başlayın

git checkout -b "branchname" 

veya iki aşamalı bir işlem olarak yapılabilir

şube oluştur: git branch branchname bu dalda çalışın:git checkout branchname

#commit local değişiklikleri [iki adımlı işlem: - Dosyayı dizine ekleyin; bu, hazırlama alanına ekleme anlamına gelir. Ardından bu hazırlama alanında bulunan dosyaları teslim edin]

git add <path to file>

git commit -m "commit message"

#checkout başka bir yerel şube

git checkout "local branch name"

# yerel şubedeki tüm değişiklikleri kaldırın [Yeni dosya eklemek veya mevcut dosyayı değiştirmek veya yerel bir taahhütte bulunmak gibi yerel şubede bazı değişiklikler yaptığınızı varsayalım, ancak artık buna gerek yok] git clean -d -fve git reset --hard [yerel şubede yapılan tüm yerel değişiklikleri temizleyin. yerel taahhüt]

git stash -u ayrıca tüm değişiklikleri kaldırır

Not: İstenen sonucu elde etmek için (1) git clean –d –fve git reset --hard VEYA (2) kombinasyonlarını kullanabileceğimiz açıktır git stash -u.

Not 1: Stashing, kelimesi 'Belirli bir yerde güvenli ve gizli bir şekilde saklayın (bir şey)' anlamına gelir. Bu her zaman git stash pop kullanılarak alınabilir. Yukarıdaki iki seçenek arasında seçim yapmak geliştiricinin çağrısıdır.

Not 2: git reset --hardçalışma dizini değişikliklerini siler. Bu komutu çalıştırmadan önce tutmak istediğiniz yerel değişiklikleri sakladığınızdan emin olun.

# Master şubeye geçin ve güncel olduğunuzdan emin olun.

git checkout master

git fetch [başlangıç ​​/ master güncellemelerini almak için bu (git yapılandırmanıza bağlı olarak) gerekli olabilir]

git pull

# Özellik dalını ana dalla birleştirin.

git merge feature_branch

# Ana dalı başlangıç ​​durumuna döndürün.

git reset origin/master

# Bir dosyayı yerel olarak yanlışlıkla sildi, nasıl geri alınır? Bir Do git statusSilinen kaynağın tam dosyayolu almak

git checkout branchname <file path name>

bu kadar!

# Ana şubeyi someotherbranch ile birleştir

git checkout master
git merge someotherbranchname

#rename yerel şube

git branch -m old-branch-name new-branch-name

#delete yerel şube

git branch -D branch-name

#delete uzak şube

git push origin --delete branchname

veya

git push origin :branch-name

#revert zaten uzak bir depoya aktarılmış bir taahhüdü

git revert hgytyz4567

#bIT, GIT kullanarak önceki bir işlemden ayrılma

git branch branchname <sha1-of-commit>

# Uzaktan kumandaya aktarılmış olan en son taahhüdün taahhüt mesajını değiştirme

git commit --amend -m "new commit message"
git push --force origin <branch-name>

# Bu daldaki tüm yerel taahhütleri silme [Yerel taahhütleri kaldırma]

Bu daldaki tüm yerel taahhütleri atmak için, yerel dalın bu dalın "yukarı akış" değeriyle aynı olmasını sağlamak için,

git reset --hard @{u}

Referans: http://sethrobertson.github.io/GitFixUm/fixup.html veya git reset --hard origin/master[yerel şube master ise]

# Uzak bir depoya zaten aktarılmış bir taahhüt geri mi döndürülecek?

$ git revert ab12cd15

# Yerel şubeden ve uzak şubeden önceki bir taahhüdü silme

Use-Case: Yerel şubenizde bir değişiklik yaptınız ve hemen uzak şubeye doğru ittiniz, aniden fark ettiniz, Oh hayır! Bu değişikliğe ihtiyacım yok. Şimdi ne yapmalı?

git reset --hard HEAD~1[bu taahhüdü yerel şubeden silmek için. 1 yaptığınız BİR taahhüdü gösterir]

git push origin HEAD --force[her iki komutun da yürütülmesi gerekir. Uzak şubeden silmek için]. Şu anda kullanıma alınmış dal, bu işlemi yaptığınız dal olarak adlandırılacaktır.

#Yerel ve uzak repodan son taahhütlerden bazılarını silin ve istediğiniz taahhüde uyun. (yerel ve uzaktaki bir tür geri alma taahhüdü)

Diyelim ki ' develop' adlı uzak şubeye ittiğiniz 3 taahhüdünüz var

commitid-1 done at 9am
commitid-2 done at 10am
commitid-3 done at 11am. // latest commit. HEAD is current here.

Eski taahhüdüne geri dönmek (şubenin durumunu değiştirmek için)

git log --oneline --decorate --graph // tüm taahhütlerinizi görmek için

git clean -d -f // yerel değişiklikleri temizle

git reset --hard commitid-1 // bu taahhüde yerel olarak geri dönme

git push -u origin +develop// bu durumu uzaktan kumandaya itin. + zorla itme yapmak

# Yerel git birleştirmeyi kaldır: Durum: Ana daldayım ve yeni çalışan dal aşaması ile birleştirilmiş ana dal2

$ git status

Şube yöneticisinde

$ git merge phase2 $ git status

Şube yöneticisinde

Şubeniz 8 taahhütte 'orijin / master' ın önünde .

S: Bu yerel git birleşmesinden nasıl kurtuluruz? Denendi git reset --hardve git clean -d -fİkisi de çalışmadı. İşe yarayan tek şey aşağıdakilerden biridir:

$ git reset --hard orijin / master

veya

$ git reset --hard HEAD ~ 8

veya

$ git reset --hard 9a88396f51e2a068bb7 [sha taahhüt kodu - bu, tüm birleştirme işlemleriniz gerçekleşmeden önce mevcut olan koddur]

#create gitignore dosyası

touch .gitignore // dosyayı mac veya unix kullanıcılarında oluşturma

örnek .gitignore içeriği:

.project
*.py
.settings

GIT kopya sayfasına referans bağlantısı: https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf


1
Uzak Şubeyi Silme komutunuz en iyi olmayabilir . Kullanıyorsunuz git push origin :branch-nameancak kullanılması önerilirgit push origin --delete branchname
vibs2006

Kabul ediyorum, önerinizle güncelledim, teşekkür ederim @ vibs2006
örümcek adam

21

Git'teki her şeyde olduğu gibi, bunu yapmanın birçok yolu vardır. Kullandığınız iki komut, bunu yapmanın bir yoludur. Yapabileceğiniz başka bir şey, onları saklamaktır git stash -u. -u(İzlenmeyen) Yeni eklenen dosyaları da dahil olduklarından emin kılar.

Kullanışlı şey hakkında git stash -uolmasıdır

  1. muhtemelen hedefinize ulaşmak için en basit (sadece?) tek komuttur
  2. daha sonra fikrini değiştirirsen tüm çalışmalarınızı gerigit stash pop (gmail'de daha sonra fikrinizi değiştirirseniz geri alabileceğiniz bir e-postayı silmek gibi)

Diğer sorunuzdan git reset --harditibaren izlenmemiş dosyaları kaldırmayacaksınız, bu yüzden hala ihtiyacınız olacaktır git clean -f. Ama git stash -uen uygun olanı olabilir.


git reset --hardizlenmeyen kaldırılmayacak dosyaları gerçekten, ama olacak izlenmeyen değişiklikleri kaldırmak, yani endekste zaten dosyalara değiştirir. Eminim demek istediğin budur :)
Frederik Struck-Schøning

Ben kullandığımda git stash -u, git bash bu yanıtı gördüm. Msgstr "{branchname} üzerinde kayıtlı çalışma dizini ve indeks durumu WIP. Bu kaydedilmiş olabilir kullanarak kullanarak alabilirsiniz git stash pop.
örümcek adam

İkinize de teşekkür ederim. Cevabı özetledim ve sorumun içine gömdüm. Christoph bana ne bildirmek git stash -uve nasıl pop, ancak Frederik beni sıfırlama sert ve kombinasyonunu kullanarak bize git reset --hardve git clean -fve neden olmasın stashbazı senaryolarda tercih edilir. Şimdi lütfen hangisinin Cevap olarak işaretlemem gerektiğine karar vermeme yardım edin :), ikisi de cevaplarım.
örümcek adam

ancak depoma eklemek istediğim bir dosya eklerse ne olur? sadece repoda. Yoksayılanlar listesine eklerseniz, diğer herkesi de etkileyecek bir .ignore dosyam var.
user20358

7

1. Yerel değişikliklerinizi hiç tutmak istemediğinizde.

git reset --hard

Bu komut, yerel deponuzdaki tüm yerel değişiklikleri tamamen kaldırır. Bu, yalnızca yerel değişikliklerinizi hiç tutmak istemiyorsanız, çekme komutu sırasında çakışmaları önlemenin en iyi yoludur.

2. Yerel değişikliklerinizi korumak istediğinizde

Yeni değişiklikleri uzaktan çekmek istiyorsanız ve bu çekim sırasında yerel değişiklikleri göz ardı etmek istiyorsanız,

git stash

Tüm yerel değişiklikleri saklayacak, şimdi uzaktan değişiklikleri çekebilirsiniz,

git pull

Artık yerel değişikliklerinizi şu şekilde geri getirebilirsiniz:

git stash pop

1
git reset --hardtüm yerel değişiklikleri kaldırmaz. Yalnızca değişiklikleri kaldırır. git clean -fd
Eklentileri


4

Bence git açıkça belgelenmemiş bir şey var. Aslında ihmal edildiğini düşünüyorum.

git checkout .

Dostum, günümü kurtardın. Her zaman değiştirilmiş kodu kullanarak denemek istediğim şeyler var. Ama işler bazen değiştirilmiş kodu bozuyor, yeni izlenmeyen dosyalar ekliyor.

Orada git clean -fd iyi izlenmeyen dosyaları için çalışır.

Sonra git resetsadece aşamalı kaldırır, ama git checkoutbiraz hantal. Dosyayı tek tek belirtmek veya dizin kullanmak her zaman ideal değildir. Bazen kurtulmak istediğim değiştirilmiş dosyalar saklamak istediğim dizinler içinde. Sadece tekil olmayan değişiklikleri kaldıran bu tek komut için diledim ve işte buradasın. Teşekkürler.

Ama bence git checkoutherhangi bir seçeneğe sahip olmamalılar , tüm değişmemiş değişiklikleri kaldırmalı ve sahnelere dokunmamalılar. Biraz modüler ve sezgisel. Daha çok ne git resetgibi. git cleanaynı şeyi yapmalı.


2

En iyi yol değişiklikleri kontrol etmektir.

Project-name adlı bir projede pom.xml dosyasını değiştirerek bunu yapabilirsiniz:

git status

# modified:   project-name/pom.xml

git checkout project-name/pom.xml
git checkout master

# Checking out files: 100% (491/491), done.
# Branch master set up to track remote branch master from origin.
# Switched to a new branch 'master'

2

İçin tüm discard ı saklamak ve bu zulası uğramaktan keyif, birden çok repo arasında işe, özellikle de tüm atmak için en hızlı yoldur.

Bu, {0}anahtardaki tüm değişiklikleri saklayacak ve anında{0}

git stash && git stash drop


1

Her şeyden önce, önemli değişiklikleriniz aşağıdakiler tarafından kaydedilip kaydedilmeyecektir:

$ git durumu

denemekten daha

$ git reset --hard

şubenizi varsayılana sıfırlar

ancak geri almanız gerekiyorsa:

$ edit (1) $ git add frotz.c filfre.c $ mailx (2) $ git reset
(3) $ git pull git: //info.example.com/ nitfol


Daha fazla bilgi >> https://git-scm.com/docs/git-reset


Yan not: reset --hard tehlikeli bir komuttur, bu tüm değişiklikleri kaldırır ve geri alınamaz. Sıfırlamayı sert kullanırken kullanıcı farkında olmalıdır.
danglingpointer
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.