使用TortoiseGit仅推送最新的提交

3
我希望使用TortoiseGit将最新的提交推送到SourceForge存储库,之前的提交不应该被推送。在这里说可以创建一个新分支并将其推送,但是新分支包含了所有之前的提交而不仅仅是最后一个提交。
我做错了什么?
谢谢!

1
可能是git-推送特定提交的重复问题。 - Ken White
我已经明确了我的问题。 - rynd
1个回答

2
我认为这主要是对git工作方式的误解。当你推送一个提交时,如果该提交有父提交,git会确保该父提交也存在于远程仓库中。除了稀疏克隆(这可能有助于节省带宽和/或磁盘使用量,但对如何与远程仓库进行交互施加了一些限制之外),git被设计为保持对象数据库完整和一致。如果您可以在没有父提交的情况下推送提交,那么完整性/一致性将受到破坏。因此,按照设计,您不能只推送一个单独的提交,而不让git确保提交的血统得到保留。
话虽如此,有两种特定的方法可以安排只推送单个提交:1)确保要推送的提交的父提交已经存在于远程数据库中(例如,使用rebase将分支上的所有提交压缩成一个提交,并可能重新定位该分支 - 但这可能不是您的工作流程的最佳选择),或2)确保要推送的提交没有父提交 - 例如,在最新版本的git中使用git checkout -b somebranch --orphan,然后创建您的提交。

TortoiseGit目前不支持--orphan,但是在存储库文件夹中调用git可以创建一个分离的分支。 - rynd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接