仅使用Ortoisegit推送最后一次提交

仅使用Ortoisegit推送最后一次提交,git,repository,push,commit,tortoisegit,Git,Repository,Push,Commit,Tortoisegit,我只想将最后一次使用Ortoisegit提交推送到sourceforge存储库。所有之前的都不得推送。据说我可以创建一个新分支并推动这个分支。但新分支具有所有以前的提交,而不仅仅是最后一个提交 我做错了什么 谢谢 我认为这主要是对git工作原理的误解。推送提交时,如果该提交有父级,git将确保该父级也在远程存储库中。除了稀疏克隆(这可能有助于保持带宽和/或磁盘使用率,但会对如何与远程存储库交互施加一些限制),git的设计目的是保持对象数据库的完整性和一致性。如果您可以在其父级不在存储库中的情况下

我只想将最后一次使用Ortoisegit提交推送到sourceforge存储库。所有之前的都不得推送。据说我可以创建一个新分支并推动这个分支。但新分支具有所有以前的提交,而不仅仅是最后一个提交

我做错了什么


谢谢

我认为这主要是对git工作原理的误解。推送提交时,如果该提交有父级,git将确保该父级也在远程存储库中。除了稀疏克隆(这可能有助于保持带宽和/或磁盘使用率,但会对如何与远程存储库交互施加一些限制),git的设计目的是保持对象数据库的完整性和一致性。如果您可以在其父级不在存储库中的情况下推送提交,则会违反完整性/一致性。所以,从设计上讲,如果git不确保保持提交沿袭,您就不能只推送一次提交


也就是说,有两种特定的方法可以安排只推送一次提交:1)确保要推送的提交的父项已经在远程数据库中(例如,使用
rebase
将分支上的所有提交压缩为单个提交,并在必要时重新定位该分支-但这可能不是工作流的最佳选择),或者2)确保要推送的提交没有父级-例如,在最新版本的git中,
git checkout-b somebranch--orphan
,然后创建提交。

可能与我指定的问题重复。TortoiseGit目前不支持
--orphant
,但在存储库文件夹中调用git时,它可以创建分离的分支。