Hareket şube kullanarak git üzerine usta tamamlar
Gıt etkili bir şekilde nasıl kullanılacağı ve nasıl hareket etmem gerektiğini merak ediyorum (iyi uygulama/kötü uygulama?) öğrenmeye çalışıyorum aşağıdaki vakayı çözmek:
Yüksek lisans iptalleri aşağıdaki zincir var dediler
- İlk commit
- 1 işlemek
- 2 kaydetme
- 3 kaydetme
O zaman son iki taahhüt bitiyor ne tamamen yanlış olduğunu fark ettim ve Taahhüt 1'den devam etmek istiyorum. Soru:
- Nasıl böyle bir şey yapayım?
- İleride (o kadar da kötü değillerdi ki) tutmak ve İşlemek 1 Çalışma ana devam etmek ayrı bir şube için 2 ve 3 İşlemek taşıyabilir miyim?
CEVAP
git branch tmp # mark the current commit with a tmp branch
git reset --hard Commit1 # revert to Commit1
Bu YÜZDEN "What's the difference between 'git reset' and 'git checkout' in git?" operasyon bu tür için oldukça öğretici . cevap
Birgit reset --hard HEAD~2
aynı şeyi (Commit1
SHA1 ilk geri gerek kalmadan).
Commit2
Commit3
yine de Git bir hakem (burada bir şube) tarafından referans olduğu için, hala onları ne zaman istersen (git checkout tmp
) dönebilirsiniz.
Aslında Darien yorumlar (başka bir şube için Commit2
Commit3
hareket ile ilgili) söz:
Yanlışlıkla yanlış şube adamış, bu bana gidelim mi:
git checkout correctbranch
git rebase tmp
git branch -d tmp
Bu işler burada bu yana ilk şube oldu sıfırlamak için Commit1
anlamına git rebase tmp
tekrar her commit sonrası Commit1
(yani burada Commit2
Commit3
) yenicorrectbranch
'.
Hareket Gıt ile yeni bir şube için en ...
Hareket mevcut, uncommited Git yeni bi...
src refspec usta gıt tamamlar zorlandı...
Bir önceki şube gıt kullanarak kaydetm...
Nasıl bir şube zaten usta birleştirild...