github

2013-07-16 29 views
7

'da birden fazla taahhütte bulunmak istiyorum En son iki işlemi "ilk" ve "ikinci" olarak gönderilecek mesajlarla doldurmak istiyorum. kaydettikten sonragithub

pick first 
squash second 

:

pick first 
pick second 

Sonra bu editör değiştirin: Önce Sonra böyle bir düzenleyicide Beni hem gösterir

git rebase -i HEAD~2 master 

taahhüt komutunu kullanın usta çekin Bu iletiyi aldığım değişiklikler:

Uzak master'da herhangi bir şey değiştirdi. Ben git push komut kullanan bu değişiklikleri uygulamak ve için aşağıdaki hata var:

Sonra
To https://github.com/aneelatest/GITtest.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to 'https://github.com/test/GITtest.git' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') 
hint: before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

tekrar git pull komutunu çalıştırın ve onu kökenli asıl birleştirme ve başka işlemek bununla taahhüt yapmak iletisi:

Merge branch 'master' of https://github.com/aneelatest/GITtest 

Bundan sonra git basını çalıştırdığımda, iki ilkeyi "ilk" mesajıyla bir araya getirin.

Ben sadece bir "ilk" iletisini işlemek ile ezilmiş biri olan taahhüt istiyor
first 
second 
Merge branch 'master' of https://github.com/test/GITtest 
first 

: sorun uzak Master'daki, şimdi dört kaydedilmesini olması. Hata yaptığım herhangi bir fikir var mı ?? İşlemler değiştirildiği için geçmişini yeniden yazıyor

+0

Artık squash yapmak zorunda değilsiniz: sahibi sizin için yapabilir (Mart 2016'dan beri): bkz http://stackoverflow.com/a/36377439/6309 – VonC

cevap

9

git rebase Söz konusu taahhütler uzak bir depoya itilmediğinde sorun değil, ama uzaktan kumanda daha önce yeniden yazdığınız işlerle itildi, bu yüzden itmeyi reddetti.

Github'tan çektiğinizde, her iki geçmişi de birleştirdi ve squash işleminizi uyguladı.

Sonuç:,

  • o
  • da uzaktan kumandadaki tarihi yeniden yazmak olacak bir git push --force yapmak yapmayın: Zaten itilmiş oldu kaydedilmesini yeniden yazmak istediğinizde, iki seçeneğiniz vardır ve insanlara tarihe yeniden yazdığınızı söyleyin, böylece bir sonraki çekimlerinde garip şeyler görecekler.