【发布时间】:2015-10-09 02:41:07
【问题描述】:
Git-scm.org 在他们的网站上非常清楚,git rm 不能用于仅从工作树中删除文件。来自git-scm.org:
没有选项可以仅从工作树中删除文件,但 将其保存在索引中;如果你想这样做,请使用 /bin/rm。
我的问题是:有没有办法可以做到这一点?不是严格意义上的 git rm 本身。
我想这样做的原因是我的 (C#) 开发工作流程中有两个文件夹——Web 根目录和我的开发根目录。当我构建我的项目时,所有项目文件都会从 dev 根目录复制到 web 根目录。作为这些项目文件的兄弟,我在 Web 根目录中有一个大型 CMS 框架。它们只安装一次,并与我的项目文件并存。
此工作流程的问题在于,如果我更改文件的位置或重命名文件,则不会删除旧文件。该过程是批量复制,我将在我的 Web 根目录中管理一个文件的两个版本。这会导致令人困惑的错误。
我的想法是在我的 Web 根目录中使用本地 git 存储库,并为所有 CMS 框架文件使用 .gitignore。我想构建一个执行三个操作的脚本:
- 删除所有 git 控制的文件
- 将文件从 dev 根目录复制到 Web 根目录
- 对索引添加任何更改,然后提交。
这样可以保证我的 Web 根目录永远不会被陈旧的文件污染。这也为我想要探索的更多机会打开了大门。
【问题讨论】:
-
我在这里回答了一个类似的问题:stackoverflow.com/questions/31241850/… - 也许那里有什么可以帮助你的。
rsync应该照顾你正在寻找的东西......
标签: git version-control development-environment