所有的开发人员都有从项目开始就应该在.gitignore中的文件,但是没有。
是否有一个git命令从git中删除文件,同时将它们保存在本地和,当它们在所有其他开发机器上git pull
时,将它们保存在本地?
理想情况下,这应该查看.gitignore的差异,以决定需要删除但保留在本地的内容。
目前,我正在考虑以下手动程序:
我的机器:
- 获取与新
.gitignore
匹配但与旧.gitignore
不匹配的所有文件的完整路径 - 将所有这些文件添加到树外的tar文件
-
git rm
所有文件 -
commit
和push origin master
的变化 - 将tar文件发送给所有其他开发人员
所有其他开发人员的机器:
-
git pull
将更新.gitignore
和删除的本地文件副本,这些文件现在应该被忽略。 - 在本地repo顶部解压缩tar文件以恢复被删除的文件
这个过程有很大的手动错误范围-有更好的方法吗?
我看过:
从Git中删除文件,不需要在本地和远程删除
从版本管理中删除文件但将其保存在本地?和
http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html在本地可以这样做:
git rm --cached FILE_NAME
Arlo Carreon解释了如何为多个开发人员做到这一点:http://www.arlocarreon.com/blog/git/untrack-files-in-git-repos-without-deleting-them/