Find commit 以在 Azure Devops 中查找非常旧的已删除文件
Posted
技术标签:
【中文标题】Find commit 以在 Azure Devops 中查找非常旧的已删除文件【英文标题】:Find commit to find a very old deleted file in Azure Devops 【发布时间】:2021-04-17 17:43:08 【问题描述】:我一年多前开始从事这个项目,但似乎比这更长的文件丢失了一个文件。我正在尝试返回我的存储库以查找此文件可能已被删除的时间,但我不知道什么提交,更不用说可能完成它的日期或用户了。
似乎在 Azure Devops 中,我只能按名称、路径、用户、日期进行搜索,或者只通过每次提交进行搜索,直到找到文件 lol。 我已经浏览了包含它的文件的历史记录,但在不知道日期、用户或提交的情况下,我无法找到它?
我尝试过 git 命令,类似于
$ git log --all --full-history -- <path-to-file>
$ git log --all --full-history -- **/thefile.*
或者我在堆栈上找到的东西,比如
grep -rnw '/path/to/somewhere/' -e 'pattern'
以及它的所有替代版本。
这些以及许多用于在附加到 Visual Studios 的实际 Azure Devops 后端站点中找到它的命令或路线……似乎都没有帮助。
希望有人知道解决此问题的方法或找到它的命令吗? 谢谢!
【问题讨论】:
这能回答你的问题吗? How to find and restore a deleted file in a Git repository 【参考方案1】:如何搜索所有已删除的文件?
git log --diff-filter=D --summary | grep delete
显示该文件的历史记录(或您在原始帖子中的内容)
git log --all -- DeletedFilePath
git show COMMIT_ID -- DeletedFilePath
【讨论】:
搜索已删除文件的命令有效,因为我确实看到了已删除的文件,但您在那里显示该文件历史记录的第二个命令似乎不起作用。例如,查看所有已删除文件的命令会生成delete mode 100644 Mvc/Controllers/CarouselController.cs
,但是当尝试输入 $ git log --all -- Mvc/Controllers/CarouselController.cs
时,它什么也不会生成,只是回到准备就绪状态以执行下一个命令。
我最终使用git log --diff-filter=D --summary | grep -E 'delete|^commit\s+\S+'
不仅显示了所有文件,还显示了相应的提交。感谢您的帮助!【参考方案2】:
PieDev 建议的第一个命令有效,但第二组命令没有返回任何信息,它们可能没有错,只是没有具体帮助我。
This solution 到一个类似的帖子引导我找到以下解决方案:
git log --diff-filter=D --summary | grep -E 'delete|^commit\s+\S+'
这将显示所有已删除的文件以及推送更改的提交。
【讨论】:
以上是关于Find commit 以在 Azure Devops 中查找非常旧的已删除文件的主要内容,如果未能解决你的问题,请参考以下文章
sh 设置Sublime Text以在git commit消息为空时打开(Windows)
需要帮助获取 azure 媒体服务编码的视频以在 HTML5/DASH 中播放
Azure 数据工厂 - 查找值以在 ForEach 复制任务中选择语句
我们正在配置 Kubectl 以在 Azure Kubernetes 服务中管理我们的集群
我们可以在 IIS 中部署 Microsoft bot 应用程序以在没有 Azure 的情况下进行托管吗?
提取 Databricks 集群依赖项并将它们添加到 build.sbt 以在 Azure DevOps 中构建 jar