在git中,如何找出在特定标记之后添加了哪些文件?
我维护数据库迁移sql脚本文件 我用git标记我的提交 假设我有像1,1.1,1.2,1.3这样的标签 我只想在创建(DB迁移sql脚本)文件后没有向repo添加标记时修改该文件。我怎样才能找到答案?在git中,如何找出在特定标记之后添加了哪些文件?,git,database-migration,flyway,git-tag,Git,Database Migration,Flyway,Git Tag,我维护数据库迁移sql脚本文件 我用git标记我的提交 假设我有像1,1.1,1.2,1.3这样的标签 我只想在创建(DB迁移sql脚本)文件后没有向repo添加标记时修改该文件。我怎样才能找到答案? 如果创建了文件,然后添加了(版本)标记,那么我不想修改sql迁移脚本,相反,我将添加一个全新的sql文件,它可以帮助我完成我想要的任务。您可以使用git diff,并进行如下一些调整: git diff——命名标签的状态..HEAD | grep^A 这意味着: “请告诉我您的标签和标题之间的区别
如果创建了文件,然后添加了(版本)标记,那么我不想修改sql迁移脚本,相反,我将添加一个全新的sql文件,它可以帮助我完成我想要的任务。您可以使用git diff,并进行如下一些调整:
git diff——命名标签的状态..HEAD | grep^A
这意味着:
“请告诉我您的标签
和标题
之间的区别,显示文件名及其状态(添加、修改、删除、创建)。”
然后,grep将其过滤到已添加的文件中,该文件通过以大写字母“A”开头的行来指示
--name status
。要自动查找最新的标记,可以使用以下命令:
git describe $(git rev-list --tags --max-count=1)
然后,该命令将为您提供两次提交之间添加的文件列表:
git diff --diff-filter=A --name-only $start_commit_id $end_commit_id
可以向差异过滤器添加更多选项,例如,--diff filter=AR
将列出已[A]dded加[R]ename的文件。
现在,如果将这两个命令放在一起,则无论最后一个标记是什么,都将获得自最后一个标记以来的文件列表:
git diff --diff-filter=A --name-only $(git describe
$(git rev-list --tags --max-count=1)) HEAD
所以,基本上,你想查看自上次标记以来添加的文件列表,对吗?@user494461我注意到你添加了一个悬赏。你能否澄清你的问题,说明你在寻找什么,以及为什么现有的答案没有涵盖它?