Supposons que j'ai 5 commits locaux. Je veux en pousser seulement 2 vers un référentiel centralisé (en utilisant un flux de travail de style SVN). Comment puis-je faire cela?
Cela n'a pas fonctionné:
git checkout HEAD~3 #set head to three commits ago
git push #attempt push from that head
Cela finit par pousser les 5 commits locaux.
Je suppose que je pourrais faire git reset pour réellement annuler mes commits, suivi de git stash puis de git push - mais j'ai déjà écrit des messages de commit et des fichiers organisés et je ne veux pas les refaire.
Mon sentiment est qu'un drapeau passé pour pousser ou réinitialiser fonctionnerait.
Si cela aide, voici ma configuration git
[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
. Toute référence au commit "up to" souhaité est également valide, commeHEAD~3
ouHEAD~~~
, ou le SHA spécifique, ou une balise qui étiquette ce commit.