Diyelim ki 5 yerel taahhüt var. Sadece 2 tanesini merkezileştirilmiş bir repoya itmek istiyorum (SVN tarzı iş akışı kullanarak). Bunu nasıl yaparım?
Bu işe yaramadı:
git checkout HEAD~3 #set head to three commits ago
git push #attempt push from that head
Bu, 5 yerel taahhüdün tamamını zorlar.
Ben gerçekten benim taahhütlerimi geri almak için git reset yapabilirim, ardından git stash ve sonra git push - ama zaten yazılmış taahhüt mesajları var ve dosyaları organize ve onları tekrarlamak istemiyorum.
Benim hissim, itme veya sıfırlama için geçen bazı bayrakların işe yarayacağıdır.
Eğer yardımcı olursa, benim git config'ım
[ramanujan:~/myrepo/.git]$cat config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://server/git/myrepo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
master~3
. İçin herhangi bir referans, istenen "kadar" tamamlama olarak eşit, geçerli bir şekildedirHEAD~3
veyaHEAD~~~
, ya da belirli bir SHS veya işlemek etiket bir etiket.