假设我有5个本地提交。我只想将其中2个推送到集中式存储库(使用SVN样式的工作流)。我该怎么做呢?
这不起作用:
git checkout HEAD~3 #set head to three commits ago
git push #attempt push from that head
最后将所有5个本地提交都推送了。
我想我可以执行git reset来实际上撤消我的提交,然后执行git stash然后执行git push,但是我已经编写了提交消息并组织了文件,并且我不想重做它们。
我的感觉是传递给推送或重置的某些标志将起作用。
如果有帮助,这是我的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
。对所需的“最多”提交的任何引用都同样有效,例如HEAD~3
或HEAD~~~
,特定的SHA或标记该提交的标签。