我试图删除,而不是revert,我的Git仓库的开发分支上的最后2次提交.提交尚未推出.
如何在不丢失更改的情况下执行此操作?
假设我有一个提交列表:
A > B > C > D > E ,如何从历史记录中删除C中所做的更改A > B > D > E?
我有这样的提交历史:
f85179d ten
7de4071 nine
5c7a482 eight
9585035 seven
b41bffc six
d102f05 five
5a28cb9 four
6fc27c9 three
524b0c7 two
bb7e6ae one
Run Code Online (Sandbox Code Playgroud)
我想将提交"一"到"五"压缩成一个提交,使它看起来像这样:
f85179d ten
7de4071 nine
5c7a482 eight
9585035 seven
b41bffc six
4tg56y5 Squash five commits into one commit.
Run Code Online (Sandbox Code Playgroud)
重要的是,我想保持未取消的提交的SHA值相同.这意味着我不能只使用`git rebase --root -i',因为它会改变所有的哈希值.
当我们的项目开始时,我们不熟悉git,并且在某些时候决定重新启动存储库.这意味着我们将所有文件导入新存储库,丢失了所有历史记录.
今天我想知道是否有办法重新组合这两个存储库.基本上,"old-repo"中文件的历史记录应该添加到"new-repo"中该文件的历史记录中.
有谁知道如何开始这个?
我见过的大多数git过滤器分支示例都是删除文件,它们是基于文件名删除文件的.我不一定想那样做.相反,我已经确定了要删除的文件的一些blob(不提交)SHA1,无论它们在存储库中的位置如何.(由于我们的回购历史,文件往往会在不改变的情况下移动.)
告诉git filter-branch根据blob SHA1删除文件的最佳方法是什么?
设置存储库后,在最初的提交中,添加的文件之一包含了不应包含的敏感数据(程序员的个人信息)。是否有可能从git历史中完全删除它?不是整个文件,只有几行包含敏感数据。
该存储库是相当新的,因此没有分支,并且自首次提交以来未修改特定文件。(PS:我是git的新手,我还不了解复杂的命令)
我正在尝试从我的 Git 存储库历史记录中删除密码(我很长时间以来手动从我的 Git 存储库中删除了密码,但没有从历史记录中删除,这次尝试清除我的 Git 存储库的整个历史记录)
同样,从分叉主仓库开始,然后按照步骤 - BFG Repo-Cleaner并尝试像这样在 StackOverflow 上进行搜索
在本地 Git 存储库上遵循的所有步骤,一切看起来都很好,最后一个是git push,但在那之后我没有看到我的分叉存储库上的提交,尽管我看到了这条消息This branch is 853 commits ahead, 853 commits behind,并且它提供了创建PR(以及比较)的选项在这个 PR 中,我看到了很多差异 [比如前一段时间创建的新文件,并且仍然存在于当前版本中],这与我试图替换的密码无关。
Git 版本是 2.21.0
git github git-filter-branch git-rewrite-history bfg-repo-cleaner
我已经提交了一个不应该在git存储库中的文件.我删除了它并提交删除,但我仍然可以通过git历史记录访问该文件.
如何永久删除已提交的文件,以便没有它的痕迹?
我有一个包含许多大文件(psd、exe、pdf 等)的存储库,每次我提交这些文件的更新时,git .pack 文件都会急剧增长以保留历史记录。如何从历史记录中删除所有大于 1mb 的文件,但将它们保留在存储库中。
另外,是否可以设置特定文件从不存储在历史记录中?