2011-01-28 22 views
73

Ben (yani design) bir dalda çalışıyorum ve bir dizi değişiklik yaptık, ama hepsini atmak ve depo sürümle uyumlu sıfırlamak gerekir. git checkout design 'un bunu yapacağını sanıyordum, ama sadece design şubesinde olduğumu ve 3 değiştirilmiş dosyam olduğunu söyledi. Bir dalda yapılan tüm değişiklikler nasıl atılır?

nasıl bu değişiklikleri atmak ve uzak sunucuda şimdi haliyle dalı olsun ki?

cevap

133

Not: bu geri alamazsınız.

TÜM şube ve master işlenen olmayan herhangi bir yerel değişiklikler silinecek git checkout -f bu deneyin. Eğer design yılında herhangi değişiklikleri istiyorum ve kesinlikle bu sadece uzak bir maç kalmış istemiyorsanız senin son

47

git size yardımcı olabilir --hard sıfırlamak şube, ayrıca sadece dalı silip yeniden oluşturabilirsiniz:

# Switch to some branch other than design 
$ git br -D design 
$ git co -b design origin/design   # Will set up design to track origin's design branch 
+5

veya 'git --hard HEAD^reset' – deadfish

+10

'git --hard HEAD^reset' gerçekten kabul cevap olmalıdır. OP diğer şubeler hakkında soru sormadı ... – bphilipnyc

+2

Bunu denedim ve sanırım son itmeden beri her şeyi sildim, sadece son taahhüdümü değil. –

16

taahhüt beri uzağa her şeyi atmak istiyorsanız

+5

ayrıca: git checkout tasarımı; git reset --hard origin/design – user37078

+0

Ayrıca, – Asarluhi

+0

şubesini silmeden önce de taahhüt ederim. Bu kabul edilen yanıt –

7

@Will, git immersion gerçekten güzel ve basit git öğretici olduğunu. Aşağıdaki durumlarda değişikliklerin nasıl geri alınacağını gösterecek: kararsız, aşamalı ve kararlı. laboratuarları kaynak kökü olarak

+2

Sadece bir yıl sonra git daldırma işlemini yaptığımı söylemek isterim. OI! Bunu daha erken yapmalıydım ... – Will

10
git diff master > branch.diff 
git apply --reverse branch.diff 
2

14-18: git reset ./ HEAD <--un-stage any staged changes git checkout ./ <--discard any unstaged changes

1

yerel dalında değişiklikleri silmek istiyor, sen git zulası komutunu kullanarak bu değişiklikleri saklamak olabilir. "Some_name" save

git zulası

Yaptığınız değişiklikler kaydedilir ve isterseniz, daha sonra bu alabilirsiniz ya da silebilirsiniz. Bunu yaptıktan sonra, şubenizde hiç yayınlanmayan bir kod olmayacak ve en son kodu git çekerek ana şubenizden çekebilirsiniz.

İlgili konular