Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在git中,如何找出在特定标记之后添加了哪些文件?_Git_Database Migration_Flyway_Git Tag - Fatal编程技术网

在git中,如何找出在特定标记之后添加了哪些文件?

在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脚本文件

我用git标记我的提交

假设我有像1,1.1,1.2,1.3这样的标签

我只想在创建(DB迁移sql脚本)文件后没有向repo添加标记时修改该文件。我怎样才能找到答案?


如果创建了文件,然后添加了(版本)标记,那么我不想修改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我注意到你添加了一个悬赏。你能否澄清你的问题,说明你在寻找什么,以及为什么现有的答案没有涵盖它?