Git 历史记录重复,是否可以压缩提交?
Git history duplicated, is squashing commits possible?
帮助:Git历史记录重复(O_O)
我试图获取一个包含 API 密钥的文件,因此研究了如何从 git 历史记录中删除一个文件,并使用了此处提供的命令:https://youtu.be/Bo-8EfDpKxA
我使用了命令
git filter-branch --index-filter 'git rm --cached --ignore-unmatch .env.development' HEAD
git filter-branch --index-filter 'git rm --cached --ignore-unmatch .env.production' HEAD
效果很好,但我认为在将更改的历史记录拉入第二个本地存储库以测试更改时我搞砸了。我将不得不在 2nd repo 上重新设置以确保旧的历史已经消失。但是我想我已经重新推送了(快进合并或其他),所以现在我有很多重复的提交! (O_O)
它们是相同的代码更改和时间戳,但提交 ID 不同。
问题
有没有办法解决历史记录的重复问题?
历史重写会压缩每个具有相同时间戳的提交怎么样?
或者我会(几乎)在每次第二次提交时手动删除的变基?
第二题
我在 develop 分支上做了这些更改,文件的删除确实有效。然而,将 develop 合并到 master 并没有成功(当然)。所以我想我也写了大师的历史?
但现在我担心我会再次复制 master 分支历史中的提交...
I tried to get ride of a file which contains an API key so researched about the remove a file from git history and used the command provided here
您应该做的是撤销 API 密钥并颁发一个新密钥。如果 repo 在多台计算机上,由不同的人使用,备份等,那么任何类型的事情都是有风险的。
Is there a way to fix it?
我不确定你到底想修复什么。任何更改提交中的任何内容都会更改哈希。因此,如果你成功删除了你想删除的东西,现在你有一个包含旧提交的分支和一个包含新提交的分支,你需要做的是删除指向旧提交链的分支并垃圾收集存储库以确保旧的真的消失了。
So I guess I have do write the history of the master as well?
分支只是指向提交的指针。如果您仍然有多个包含该文件的分支,则需要移动这些分支以指向固定的提交链。所以你必须做什么取决于。如果您的 master
分支也有独立的错误,那么您还必须重写 master
.
的历史记录
帮助:Git历史记录重复(O_O)
我试图获取一个包含 API 密钥的文件,因此研究了如何从 git 历史记录中删除一个文件,并使用了此处提供的命令:https://youtu.be/Bo-8EfDpKxA
我使用了命令
git filter-branch --index-filter 'git rm --cached --ignore-unmatch .env.development' HEAD
git filter-branch --index-filter 'git rm --cached --ignore-unmatch .env.production' HEAD
效果很好,但我认为在将更改的历史记录拉入第二个本地存储库以测试更改时我搞砸了。我将不得不在 2nd repo 上重新设置以确保旧的历史已经消失。但是我想我已经重新推送了(快进合并或其他),所以现在我有很多重复的提交! (O_O) 它们是相同的代码更改和时间戳,但提交 ID 不同。
问题
有没有办法解决历史记录的重复问题? 历史重写会压缩每个具有相同时间戳的提交怎么样?
或者我会(几乎)在每次第二次提交时手动删除的变基?
第二题
我在 develop 分支上做了这些更改,文件的删除确实有效。然而,将 develop 合并到 master 并没有成功(当然)。所以我想我也写了大师的历史?
但现在我担心我会再次复制 master 分支历史中的提交...
I tried to get ride of a file which contains an API key so researched about the remove a file from git history and used the command provided here
您应该做的是撤销 API 密钥并颁发一个新密钥。如果 repo 在多台计算机上,由不同的人使用,备份等,那么任何类型的事情都是有风险的。
Is there a way to fix it?
我不确定你到底想修复什么。任何更改提交中的任何内容都会更改哈希。因此,如果你成功删除了你想删除的东西,现在你有一个包含旧提交的分支和一个包含新提交的分支,你需要做的是删除指向旧提交链的分支并垃圾收集存储库以确保旧的真的消失了。
So I guess I have do write the history of the master as well?
分支只是指向提交的指针。如果您仍然有多个包含该文件的分支,则需要移动这些分支以指向固定的提交链。所以你必须做什么取决于。如果您的 master
分支也有独立的错误,那么您还必须重写 master
.