是否有一种方法可以快速查看当前属于源代码管理但未包含在项目中的文件是否已包含在该项目中?
我知道要做的唯一一件事就是逐一手动查看项目文件的以前版本,这会非常麻烦。
有什么更好的方法可以做到这一点吗?
编辑:只是要明确一点,我不是在寻找目标文件本身的历史。我想看看项目文件(.csproj文件(是否曾经引用过文件名。
因此,为了使示例更加清晰,假设项目名称为myproject.csproj,目标文件为myfile.txt。
实际上并没有那么难:
git log --pretty=%h | while read revision; do
lines=$( git ls-tree -r $revision | grep the-file-I-want | wc -l )
if [ $lines -gt 0 ]; then
echo $revision has the file
fi
done
它可以写在1行中以备不时之需。
一个简单的工作解决方案(对我来说(可能如下:
- 将dir更改为存储库的根目录
- 假设您正在搜索的文件位于子文件夹中(省略
**/
以仅搜索根文件夹( - 发出命令
git log --all --full-history --oneline -- **/{{FILE_TO_SEARCH_FOR}}
因此,无论子文件夹是什么,您都将在找到文件{file_TO_SEARCH_FOR}的位置获得提交。
编辑
搜索是否在CSPROJ文件中引用过文件:
git log --all --full-history --oneline -S {{FILE_TO_SEARCH_FOR}} -- **/*.csproj