git - git命令获取特定目录下的所有文件并进行hash
问题描述
我正在尝试使用 git 获取特定目录下的所有文件。我正在使用git rev-parse origin/master
获取主分支哈希。我现在想使用这个哈希来获取特定目录下的所有文件。
我可以使用该命令获取所有文件,git ls-tree -r masterhash --name-only --full-tree
但想知道对于特定目录是否有更好的方法。
解决方案
您可以使用如下语法为特定修订指定特定树:HEAD:sha256
. 这指的HEAD
是目录中修订版的树对象sha256
(例如,对于 Git 项目存储库)。
如果您只想获取名称,可以这样做:
$ git ls-tree --name-only -r HEAD:sha256
block/sha256.c
block/sha256.h
gcrypt.h
如果您想要相对于存储库根目录的路径,请编写以下代码:
% git ls-tree --name-only -r HEAD sha256
sha256/block/sha256.c
sha256/block/sha256.h
sha256/gcrypt.h
您不需要--full-name
或--full-tree
除非您相信您将在子目录中操作并且不想被限制在该子目录中。此外,虽然我在HEAD
这里指定了,但您可以使用您喜欢的任何修订模式(请参阅 参考资料gitrevisions(7)
)。
推荐阅读
- python - 重命名文件后出现“FileNotFoundError:没有这样的文件或目录”
- spring-boot - 如何使用 Spring Boot Kafka 在集群中获取 Kafka 代理?
- javascript - 如何在Javascript中的for循环之间放置空格
- sql - 操作数类型冲突:用 (...) 加密的 numeric(16,5) 与浮点数不兼容
- firebase - 在数组 Firestore 中使用地图的复合查询
- handlebars.js - 在 BigCommerce 中显示子类别的子类别
- azure-devops - Azure DevOps - 如何创建不由标签触发的构建管道
- python-3.x - Python:有没有办法在一个单独的变量达到一个 5 的倍数后给一个变量加 1?
- android - 房间数据库android的问题
- python - NLP 神经网络的递归深度超出/内核死亡连接张量