Angenommen, ich habe 5 lokale Commits. Ich möchte nur zwei davon in ein zentrales Repo verschieben (mithilfe eines SVN-ähnlichen Workflows). Wie mache ich das?
Das hat nicht funktioniert:
git checkout HEAD~3 #set head to three commits ago
git push #attempt push from that head
Das führt dazu, dass alle 5 lokalen Commits verschoben werden.
Ich nehme an, ich könnte git zurücksetzen, um meine Commits tatsächlich rückgängig zu machen, gefolgt von git stash und dann git push - aber ich habe bereits Commit-Nachrichten geschrieben und Dateien organisiert und möchte sie nicht wiederholen.
Mein Gefühl ist, dass eine Flagge, die zum Drücken oder Zurücksetzen übergeben wurde, funktionieren würde.
Wenn es hilft, hier ist meine Git-Konfiguration
[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
. Jeder Verweis auf das gewünschte Commit "bis zu" ist gleichermaßen gültig, z. B.HEAD~3
oderHEAD~~~
oder die spezifische SHA oder ein Tag, das das Commit kennzeichnet.