如果将git远程源切换到新的repo和git pull,会发生什么?

如果将git远程源切换到新的repo和git pull,会发生什么?,git,bitbucket,Git,Bitbucket,我的问题背后的背景是,我不小心将一个5gb的文件夹(实际上是drupal sites/default文件夹,应该位于.gitignore文件中)上载到bitbucket上的远程存储库。当我发现错误时,我继续删除它,并推动提交 在那之后,我意识到git历史中仍然有这些文件。在本地计算机上,我执行了以下操作: git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch sites/default' --prune-em

我的问题背后的背景是,我不小心将一个5gb的文件夹(实际上是drupal sites/default文件夹,应该位于.gitignore文件中)上载到bitbucket上的远程存储库。当我发现错误时,我继续删除它,并推动提交

在那之后,我意识到git历史中仍然有这些文件。在本地计算机上,我执行了以下操作:

git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch sites/default' --prune-empty --tag-name-filter cat -- --all
git prune
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
之后,我使用以下方法将其克隆到新的本地回购协议中:

git clone --no-hardlinks file://path/to/old-repo new-repo
这给了我一个“干净”的存储库,历史记录被重写以删除目标文件夹。 之后,我将新存储库的来源更改为我的bitbucket repo,并使用以下命令强制推送更改:

git push origin master --force

即使从历史记录中删除了提交,并且检查bitbucket上的源代码根本不会显示这些文件,存储库大小仍然是5gb。由于找不到删除这些文件的方法,我选择在bitbucket上创建一个新的存储库,并将新的本地存储库推送到它


如果另一个开发人员正在处理同一个项目,将他的git remote更改为指向此新存储库并执行git pull操作,那么他的机器上的文件是否与新存储库相同?

我设法找到了一位在原始存储库上的同事,但由于她没有执行任何最近的更改,在包含不需要的文件夹的提交之后。将源代码切换到新存储库后,git拉取成功,在任何提交中都没有多余文件夹的痕迹

希望这能帮助处于类似情况的人

git push origin development --force