【发布时间】:2015-10-15 08:00:08
【问题描述】:
所有开发人员都有从项目开始就应该在 .gitignore 中的文件,但实际上没有。
当他们git pull 时,是否有一个 git 命令可以从 git 中删除文件,同时将它们保存在本地并将它们本地保存在所有其他开发人员机器上?
理想情况下,这应该查看 .gitignore 的差异,以确定需要删除但保留在本地的内容。
目前,我正在考虑以下手动程序:
我的机器:
- 获取与新
.gitignore匹配但与旧.gitignore不匹配的所有文件的完整路径 - 将所有这些文件添加到树外 tar 文件中
-
git rm所有这些文件 -
commit和push origin master变化 - 将 tar 文件通过电子邮件发送给所有其他开发人员
所有其他开发者的机器:
-
git pull将更新.gitignore并删除他们现在应该被忽略的文件的本地副本。 - 在本地 repo 顶部解压 tar 文件以恢复已删除的文件
此过程存在很大的手动错误范围 - 有没有更好的方法?
我看过:
Remove file from Git without deleting them locally and remotely
Removing a file from versioning but keeping it locally? 和
http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html
【问题讨论】:
-
我相信你只能告诉开发者复制文件然后拉取。有类似的问题。