如何使用 git 删除 bitbucket 中的特定文件?

how to delete specific file in bitbucket using git?

我无意中将带有密码的代码推送到了位桶。我发现我需要使用以下命令删除此文件。

git filter-branch --tree-filter 'git rm -rf app\Http\xxxx.php' 1xeeeee..HEAD

我正在使用 windows 并且 repo 在 gitbucket 中。

我正在尝试执行 windows 命令提示中的命令,但在下方显示错误。

fatal: ambiguous argument 'rm': unknown revision or path not in the working tree.

我认为错误是因为我在 windows 中并且文件在 bitbucket 中。

有没有其他方法可以从 bitbucket 的历史记录中删除特定文件?

还有可以在 bitbucket 中进行 SSH 吗?所以我可以在那里执行命令。

  1. 您应该使用 --index-filter,而不是 --tree-filter。它的速度要快得多,因为它不需要工作树,而且删除它也能正常工作。
  2. 当使用--index-filter时,git rm使用--cached,这样rm只作用于索引,没有工作树--index-filter
  3. --ignore-unmatch 添加到 git rm 以忽略当前重写的提交中是否存在该文件。 (这是您收到实际错误消息的原因)
  4. filter-branch 是一个纯本地命令,只会更改您的本地存储库。因此,如果某些东西有效或无效,这与它是否在 BitBucket 上无关。在您验证结果符合预期后,您必须强制推送到 BitBucket 以用您重写的版本覆盖那里的回购协议。
  5. 不,您不能通过 SSH 连接到 BitBucket,除非您为 Atlassian 工作。