- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想列出我存储库中的所有轻量级标签;我能想到的最好的方法是将 git for-each-ref
、grep
和 cut
结合起来,但看起来会很友好繁琐的...
(当我们讨论它时,我们不妨为带注释的标签谈论同样的事情:肯定有人最终会在某个时候对此感到疑惑。)
编辑:
轻量级
标签是指那些不 引用标签对象的标签引用。 (换句话说,未注释的标签。)
最佳答案
所有轻量级标签都在 refs/tags/
命名空间中,可以用例如:
git for-each-ref --format '%(refname:short)' refs/tags/
或:
git show-ref --tags
至于带注释的标签,嗯,这里的技巧——它也影响“轻量级”标签部分——是带注释的标签实际上是 git 存储库中的一个对象,但是,有一个轻量级的指向那个对象的标签,它让你可以通过它的标签名称找到带注释的标签。1所以它真的是一对东西:一个轻量级标签,加上在 repo 中注释的标签对象,这使得它“不是一个轻量级标签”,除了一个顽固的事实,即 同时也是一个轻量级标签!
因此,它归结为:找到所有轻量级标签,然后根据您想要的行为选择仅选择指向提交的标签或指向标签对象的标签,然后继续发出标记名称。
在 git-for-each-ref
文档中有一个很长的例子,在 --format
字符串中编写整个脚本并使用 eval
来执行它(或者您可以通过管道传输到 sh
来执行,但需要一个额外的进程)。我通常发现将 git for-each-ref
的输出通过管道传输到 while read ...
循环中更简单:
git for-each-ref refs/tags/ --format '%(objecttype) %(refname:short)' |
while read ty name; do [ $ty = commit ] && echo $name; done
打印所有 lightweight-only 标签。
比较:
git for-each-ref refs/tags/ --format '%(objecttype) %(refname:short)' |
while read ty name; do [ $ty = tag ] && echo $name; done
打印所有 annotated 标签(或更准确地说,“lightweight-that-are-annotated”标签)。
请注意,标签可以(可以想象——据我所知,目前还没有实际用例)指向提交或标签以外的其他内容;是否使用直接指向 tree
或 blob
的标记来做某事取决于您。
1如果没有轻量级标签,您将无法使用名称 annotag
来引用带注释的标签 annotag
——如果不通过至少,git fsck
用于查找悬挂对象的所有搜索工作。此外,如果删除轻量级标签,带注释的标签对象可能会被垃圾回收。您可以使一个标签对象指向另一个标签对象以将其保留在存储库中(即禁止 gc),而第二个标签对象无需外部名称,只要第一个标签对象具有外部名称即可。不过,这绝对是一件奇怪的事情。
有趣的是,注释标签的内部格式包含外部名称,因此可以使用此技术来保护“旧”注释标签,通过删除轻量级标签来 stash 它们,然后再恢复原始轻量级标签。不过,是否有人可以为此想出一个用途...:-)
关于git - 如何列出所有轻量级标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21031201/
如何从单个输入字段中的逗号分隔值输出列表(无论是作为单个值还是作为数组)? 示例 用户在文本输入字段中输入以下内容:Steve、Bruce、Matt、Natasha、Peter 结果: 史蒂夫 布鲁斯
如何列出与 Jena 中的实例关联的所有对象属性? 例如:Person 有一个名为“hasVehicle”的对象属性,它与类 Vehicle 相关联 最佳答案 合适的 Jena 方法是 OntClas
如何列出与 Jena 中的实例关联的所有对象属性? 例如:Person 有一个名为“hasVehicle”的对象属性,它与类 Vehicle 相关联 最佳答案 合适的 Jena 方法是 OntClas
我知道 Python 是一种动态语言,但下面的代码让我很困扰。 我有下面的简单程序,它有一些辅助函数来包装命令执行。 EventLoaderToVerticaHelper 是一个有两个方法的辅助类,所
我有以下代码 public void saveProjects(List proj) throws DatabaseException { for (Project listItems: pr
我有一个列表,其中元素是: struct element { double priority; int value;
我看到对于 pull 请求的提交,根据文档最大限制为 250:List commits on a Pull Request如果 pull 请求超过 250 次提交,则建议使用另一个端点:List Co
我是 django 的新手,我想列出一个 django 项目的应用程序,例如: FeinCMS 我知道 startapp 会为应用程序创建目录结构。请问有没有函数或者文件可以获取应用列表。 以Fein
你能列出所有在 Hibernate 框架中使用的设计模式吗? 我了解一些设计模式,如 DAO、ORM 等。 如果可能的话,一些例子。 最佳答案 Hibernate 中使用的设计模式: 领域模型模式——
我正在尝试在终端中使用 psql 来查找数据库中所有可为空的列。如果我使用 select * from information_schema.check_constraints; 我得到如下信息 c
您可以使用以下步骤列出 WSO2 碳基产品使用的所有管理服务。 使用 OSGI 控制台启动服务器。转至 /bin 使用命令 shell 。 i) 例如:Linux sh wso2server.s
我想列出数据库中的所有表名。我的应用程序必须独立于 DBMS。不同的 DBMS 有不同的命令来列出表,例如: PstgreSQL: SELECT * FROM pg_catalog.pg_table
主要是为了我自己的启发,我试图列出当前 Emacs session 中加载的所有全局变量。我正在考虑做的是生成一个包含所有列出的功能的 HTML 文件。当然,定义函数、var 等的文件也很有用。 em
我如何定义 lists:append具有列表理解功能? 我想要类似的东西 1> append([[1, 2, 3], [a, b], [4, 5, 6]]). [1,2,3,a,b,4,5,6] 最佳
使用以下 Powershell 代码段,我可以获取当前用户的组成员名称: $groups = [System.Security.Principal.WindowsIdentity]::GetCurre
如何列出 Docker 容器的所有卷?我知道它应该很容易获得,但我找不到方法。 另外,是否可以获取已删除容器的卷并将其删除? 最佳答案 您可以使用 docker ps,获取容器 ID 并写入: $ d
来自微软独库: The "\\.\" prefix will access the Win32 device namespace instead of the Win32 file namespace
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: Finding all Namespaces in an assembly using Reflection (Do
是否有命令行选项可以列出您的 Cucumber 测试套件中的所有标签? 例如,我想要这样的东西: cucumber --show-tags foo.feature 那会给我类似的东西: @ci @de
有没有一种快速的方法来列出为数据库定义的所有实际上没有被任何字段使用的 Firebird 域?我有一个包含许多表和许多域的大型数据库,似乎其中很多不再使用,所以我想是时候进行清理了! 我认为这可以通过
我是一名优秀的程序员,十分优秀!