git rebase -i HEAD~N,可以删除推送(私有)数据吗?

时间:2018-04-23 09:10:00

标签: git github

在测试某些代码时,我忘记删除公共存储库上的测试端点,例如,代码最初有:

endpoint: http://yourendpoint.tld

在我做了一些测试后,我没有删除我的端点:

endpoint: http://my-endpoint.tld

我修复了另一个提交并将其设置回原始值,但在git历史记录中我的端点仍然存在"就像预期的那样"

我打算清理历史记录,删除我之前提交的更改,我所做的是一个rebase,如:

git rebase -i HEAD~3

然后我强行推了一下:

git push -f

我检查了历史记录,现在我看不到我的endpoint的痕迹,但是想知道这是否正常,或者我是否需要额外的东西以确保在远程服务器中没有我的数据痕迹。

主要是因为在某些帖子中我看到使用filter-branch,例如:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch MyPasswordFile' \
--prune-empty --tag-name-filter cat -- --all

1 个答案:

答案 0 :(得分:0)

对于默认服务器设置,rebase -i后跟push -f足以使私有数据对客户端不可见,前提是没有其他引用(分支或标记)指向原始分支头。 / p>

服务器必须将uploadarchive.allowUnreachable设置为false(或取消设置,因为false是默认值)。这可确保客户端只能请求可从refs访问的提交。