我想将我的git历史记录发布到公共存储库,但希望删除旧的提交。我所见过的所有方法都会改变新的提交的SHA1,这不是一种选择,因为我希望能够推送到修改后的回购。无论如何要做到这一点?发布部分git历史
4
A
回答
5
如果您修改历史记录,那么您将不可避免地更改较新提交的SHA1哈希值。这是因为哈希基于整个历史,而不仅仅是最新的快照。这是通过设计来捕捉存储库任何部分的腐败(意外或恶意)。
1
我肯定失去了一些东西,但你不能使用类似:
git log --since="2009-1-1" -p
某一日期之后仅提取提交或:
git log -p 18f822e..HEAD
让所有的历史经过特定的提交。
+0
他写了“历史”,但文字表明他的意思是“部分存储库”。 – gimpf 2011-02-25 16:41:48
4
Ben James'评论是准确的。但是,你可以做的是在你当前的仓库中启动一个新的分支。从那里,建立该分支的历史,如你所愿。发布时,只需将该特定公共分支推出即可。这将为您提供您正在寻找的功能。
下面是我只是做了它在我的测试案例:你想隐藏的
git branch stackoverflow #Get myself a working branch from current
git rebase -i deadbeef #0xDEADBEEF is the hex of my first commit
壁球一切。请注意,如果您有一个具有多个根的存储库,那么git将获得PISSED。这不应该是可能的,但我刚刚发现,通过一些神奇的svn转换,我创造了这样一个野兽。
一个项目也可以有多个根,尽管这并不常见(或者一定是个好主意)。
导出新分支。从那里,你可以把它当作主发展分支,把其他的东西当作一个没有暴露的主题或历史分支。
相关问题
- 1. git拉分行历史
- 2. git p4克隆文件历史包括积分历史
- 3. 重写git历史将主分支转换为开发分支?
- 4. 清理git历史
- 5. git抓取历史
- 6. 编辑git历史
- 7. Git日志历史
- 8. 壁球git历史
- 9. 的Git,SVN - 进口全部历史
- 10. 如何在Git中记录Web项目的发布历史?
- 11. Git历史改写搞砸了分支
- 12. Git重新分配壁球历史
- 13. 如何拆分“历史”git存储库?
- 14. 分割文件时保留git历史
- 15. 没有历史的git分支
- 16. Git - 分支提交历史重复
- 17. 如何分解历史中的Git commit?
- 18. git改写历史(rebase旧分支?)
- 19. 如何隐藏/加密部分GIT历史记录?
- 20. 具有相关历史的部分git克隆
- 21. 删除我们的臃肿的git的历史部分
- 22. Android平台版本的历史分布
- 23. 项目发布历史文件
- 24. 在Windows Azure网站发布历史
- 25. Git的历史:去图
- 26. 用git走历史吗?
- 27. git merge操纵历史
- 28. Git克隆/下载历史
- 29. 删除/折叠git历史
- 30. 在git中添加历史
为什么这不是一个选项?你仍然可以推到新的回购。但是,是的,改变历史会创造新的哈希值 - 这是Git的加密安全性的一部分。否则,任何人都可以伪造你的回购,并声称它与你的相同! – 2010-01-04 16:06:14