问题标签 [git-ls-tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
32618 浏览

git - 如何读取 git-ls-tree 输出的模式字段

我知道最后 3 位八进制数字是文件模式,但前 3 位数字是什么?我在 git 用户手册中找不到它。

0 投票
3 回答
23078 浏览

git - 工作目录的 git ls-tree 输出?

我正在寻找一种以与ls-tree我的工作目录相同的方式输出的方法。每当我运行git ls-tree .它说fatal: Not a valid object name .

0 投票
5 回答
16918 浏览

git - Git 树对象的内部格式是什么?

Git 树对象的内容格式是什么?

blob 对象的内容是blob [size of string] NUL [string],但树对象的内容是什么?

0 投票
1 回答
197 浏览

git - 替代 git ls-tree -r HEAD -- 。:!foo

我想在一组路径中检索文件的路径、权限和内容哈希列表以进行修订,不包括某些路径。

git ls-tree看起来很完美。例如,在 Git 存储库中,


但这已在 2.3.0中删除,并带有消息

ls-tree:禁用负路径规范,因为它不受支持

那是循环的;)


在 git 2.3.0 及更高版本中执行此操作的新“正确”方法是什么?

0 投票
0 回答
35 浏览

git - 查看更新的 git 裸存储库文件的最佳方式是什么?(ls-tree 的概念)

我正在寻找一种方法来查看 git 裸存储库中由其他远程更新但不拉入我的存储库的文件。

我将尝试使用本地示例来描述我的疑问。

我创建了一个文件夹,添加了两个文件并创建了一个新的存储库。

然后我从这个 repo 创建一个裸存储库。

现在我想创建该裸仓库的两个克隆并模拟太同事的一些操作。

首先,clone1将创建一个文件,提交并推送更改。

其次,clone2将创建一个文件并且只提交。

在这一点上,我开始怀疑这个ls-tree概念。执行下一个命令,我希望看到 clone1 推送的文件,但我收到以下信息:

我想收到类似在裸存储库目录中执行 ls-tree 命令的结果:

研究这个案例,我发现了一个命令,它向我展示了我想要的东西,但还有很多其他信息。因此,返回clone2并执行命令:

总而言之,我在clone2存储库中查看哪些文件在裸存储库中,而无需拉取。但我想要一些非常干净的东西,比如ls_tree在裸存储库上使用。

0 投票
0 回答
51 浏览

git - 如何在 git repo 中仅列出 eixsting 文件?

我曾经sparse checkout按照此问题中的说明从存储库中克隆子文件夹和文件。目前,我想列出我磁盘中签出的文件 - 不是完整的回购树,只有现有的文件,有没有任何命令可以做到这一点?

我知道我可以使用git ls-tree命令列出 repo 中的整个文件,但这不是我想要的,我只需要列出当前 repo 中的现有文件。

提前致谢。

0 投票
1 回答
103 浏览

git - Git - 按分支/标签名称递归列出文件

我想在不克隆所有远程文件的情况下查看文件树。是否可以使用 git 命令?

git版本2.21.0

我当前的命令如下:

我怎样才能尽可能快地只获取 .html 文件?我的回购真的很大。我只需要 .html 文件。

0 投票
2 回答
161 浏览

git - 如何比较本地和远程 git 文件?

我需要列出仅存在于本地的所有跟踪的提交文件。假设我的本地仓库是远程仓库(在 github 或 gitlab 上)的提交,这些是我本地跟踪的提交文件:

现在想象在我的远程仓库中只有这些文件之一:

根据跟踪的提交文件,可以使用什么 git 命令列出本地和远程存储库之间的差异?明确地说,哪个 git 命令(git-ls-files、gt-ls-remote、git-ls-tree 等)可以生成以下输出:

编辑 1:我必须在不从远程仓库中提取提交的情况下执行此操作。

编辑 2:我需要这个来编写一个 git hook 来防止推送,但我不确定这是 git hooks 的一个很好的用例。

0 投票
1 回答
14 浏览

git - 计算 git worktree 哈希

我一直在使用 'git rev-parse HEAD:' 来计算工作树中文件夹的哈希值。这与 'git ls-tree :' 的行为基本相同。

这不是计算当前工作树的哈希,而是计算特定提交(在我的情况下为 HEAD)的哈希,因此对工作树的更改(修改、新文件、删除、暂存)不是计算的一部分。

现在我想更改我的逻辑以包含这些更改,以计算文件夹的哈希值,但从工作树当前状态而不是提交计算。最好使用与 ls-tree 相同的逻辑(因为到目前为止我们已经使用了此代码,并且希望保持兼容性)。

如何才能做到这一点?非常感谢任何帮助