从整个Git历史记录中删除文件需要什么样的克隆/签出?

从整个Git历史记录中删除文件需要什么样的克隆/签出?,git,Git,在回顾了许多关于如何从git历史中删除文件的类似问题后,我使用以下命令完成了操作: # removes a given file from the repository entirely git filter-branch --prune-empty -d /dev/shm/scratch \ --index-filter "git rm --cached -f --ignore-unmatch gridspace_operational.in" \ --tag-name-filt

在回顾了许多关于如何从git历史中删除文件的类似问题后,我使用以下命令完成了操作:

# removes a given file from the repository entirely
git filter-branch --prune-empty -d /dev/shm/scratch \
   --index-filter "git rm --cached -f --ignore-unmatch gridspace_operational.in" \
    --tag-name-filter cat -- --all

但是,当我在repo的本地克隆上执行此操作时(头部指向主机),它会更改此本地克隆上的内容,但在远程存储库上不会发生任何事情。如何将完整的文件删除应用到远程存储库?

您需要
git push--force
将更改反映到远程存储库中。

您需要
git push--force
将更改反映到远程存储库中。

您需要
git push--force
将更改反映到远程存储库中要使更改反映在那里。

您需要将git push--force推送到远程设备上,才能使更改反映在那里。

首先,必须了解以这种方式修改远程存储库将如何影响其他用户。如果其他人有“代码>克隆< <代码> d,<代码>拉< /COD> ED或<代码> FETCH < /Cord>ED,请仔细考虑您是否真正想进行这些更改。

实际上,修改远程服务器的历史记录将导致存储库的所有其他克隆与远程服务器不兼容。如果其中任何一个是本地修改的,或者如果其他开发人员正在积极处理该项目,那么您需要仔细协调您的
push

如果确实要进行这些更改,
git push--force
将使远程存储库更新为与本地存储库匹配


如果删除的数据包含私人信息(如密码),则还必须更改所有这些密码。首先,重要的是要了解如何以这种方式修改远程存储库会影响其他用户。如果其他人有“代码>克隆< <代码> d,<代码>拉< /COD> ED或<代码> FETCH < /Cord>ED,请仔细考虑您是否真正想进行这些更改。

实际上,修改远程服务器的历史记录将导致存储库的所有其他克隆与远程服务器不兼容。如果其中任何一个是本地修改的,或者如果其他开发人员正在积极处理该项目,那么您需要仔细协调您的
push

如果确实要进行这些更改,
git push--force
将使远程存储库更新为与本地存储库匹配


如果删除的数据包含私人信息(如密码),则还必须更改所有这些密码。首先,重要的是要了解如何以这种方式修改远程存储库会影响其他用户。如果其他人有“代码>克隆< <代码> d,<代码>拉< /COD> ED或<代码> FETCH < /Cord>ED,请仔细考虑您是否真正想进行这些更改。

实际上,修改远程服务器的历史记录将导致存储库的所有其他克隆与远程服务器不兼容。如果其中任何一个是本地修改的,或者如果其他开发人员正在积极处理该项目,那么您需要仔细协调您的
push

如果确实要进行这些更改,
git push--force
将使远程存储库更新为与本地存储库匹配


如果删除的数据包含私人信息(如密码),则还必须更改所有这些密码。首先,重要的是要了解如何以这种方式修改远程存储库会影响其他用户。如果其他人有“代码>克隆< <代码> d,<代码>拉< /COD> ED或<代码> FETCH < /Cord>ED,请仔细考虑您是否真正想进行这些更改。

实际上,修改远程服务器的历史记录将导致存储库的所有其他克隆与远程服务器不兼容。如果其中任何一个是本地修改的,或者如果其他开发人员正在积极处理该项目,那么您需要仔细协调您的
push

如果确实要进行这些更改,
git push--force
将使远程存储库更新为与本地存储库匹配


如果删除的数据包含私人信息(如密码),则还必须更改所有这些密码。考虑到它们被破坏了。

特别是如果你删除了文件,因为它包含密码或其他秘密的东西,每个有“老”克隆的开发者仍然可以访问该文件,因为他/她有“旧”的历史。尽管如此,如果他/她从中央回购中提取您的变更,仍然可以使用
git refstat
Good point,Jens访问旧的历史记录。我已经更新了答案,包括更改密码以及删除密码的需要。特别是如果您删除了该文件,因为它包含密码或其他机密内容,每个拥有“旧”克隆的开发人员仍然可以访问该文件,因为他/她有“旧”历史记录。尽管如此,如果他/她从中央回购中提取您的变更,仍然可以使用
git refstat
Good point,Jens访问旧的历史记录。我已经更新了答案,包括更改密码以及删除密码的需要。特别是如果您删除了该文件,因为它包含密码或其他机密内容,每个拥有“旧”克隆的开发人员仍然可以访问该文件,因为他/她有“旧”历史记录。尽管如此,如果他/她从中央回购中提取您的变更,仍然可以使用
git refstat
Good point,Jens访问旧的历史记录。我已经更新了答案,包括需要更改密码以及删除密码。特别是如果您删除了该文件,因为它包含密码或其他机密内容,每个拥有“旧”克隆的开发人员仍然可以访问该文件,因为他/她拥有