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_File Permissions - Fatal编程技术网

Git 查看特定文件的可执行位/权限掩码元数据

Git 查看特定文件的可执行位/权限掩码元数据,git,file-permissions,Git,File Permissions,git应该在元数据中为存储库中的每个文件保存一个独立于当前FS权限的“可执行”标志 显示如何设置此标志 git ls tree显示已编译的权限掩码,但仅显示整个存储库的权限掩码 如何仅查看特定文件(或一组文件)的标志 到描述这段元数据的参考文档的链接是理想的。我到处都找不到模糊的短语。使用git ls tree,只需给它更多的参数: $ git ls-tree HEAD xdiff* 100644 blob 54236f24b9786710f91650ac63f6004cdeb012e6

git
应该在元数据中为存储库中的每个文件保存一个独立于当前FS权限的“可执行”标志

  • 显示如何设置此标志

  • git ls tree
    显示已编译的权限掩码,但仅显示整个存储库的权限掩码


如何仅查看特定文件(或一组文件)的标志


到描述这段元数据的参考文档的链接是理想的。我到处都找不到模糊的短语。

使用
git ls tree
,只需给它更多的参数:

$ git ls-tree HEAD xdiff*
100644 blob 54236f24b9786710f91650ac63f6004cdeb012e6    xdiff-interface.c
100644 blob fbb5a1c3949b6ef6ba0dfb758723a48f3b402190    xdiff-interface.h
040000 tree 4c60b91db5de467cf05e864429dce1b44cb843e7    xdiff
第一个输出字是模式,对于blob,模式总是
100644
100755
。如果为
100755
,则设置可执行位,否则不设置。(有趣的是:git在内部存储整个模式值,作为没有前导零的八进制字符串。上面最后一行中的前导零由
git ls tree
生成)

如果需要,保留文件或目录名;如果它是一个目录(mode
040000
或type
tree
type
字符串实际上是由
mode
内部确定的,在本例中),并且您希望检查其内容,请添加一个尾随斜杠:

$ git ls-tree HEAD xdiff/
100644 blob 4fb7e79410c22fba1fb390af2e09008e932f5ea8    xdiff/xdiff.h
100644 blob 2358a2d6326e54308413cb8a5e6b61eba06324e9    xdiff/xdiffi.c
100644 blob 8b81206c9af0767bd91c4b9e453f7c5c2bde47b1    xdiff/xdiffi.h
100644 blob 993724b11c40bacffee8df927018e5790a265bd4    xdiff/xemit.c
100644 blob d29710770ce40bafa6e9eb2b2ea7c9c8ba43c727    xdiff/xemit.h
100644 blob 73210cb6f3fb5d1cb90b1c5959a5a90e058ea1f2    xdiff/xhistogram.c
100644 blob 526ccb344d231fb978f53b80deb17ec6c8fed368    xdiff/xinclude.h
100644 blob 165a895a93e04b33ca7c8f3839ee85e0eccb4a07    xdiff/xmacros.h
100644 blob f338ad6c757cda29a052960a504715c062ab5dda    xdiff/xmerge.c
100644 blob 04e1a1ab2a863814df3b9a91d4e854704d47f3f5    xdiff/xpatience.c
100644 blob 13b55aba7441bc84d2c5c075110e9ef798ba18f8    xdiff/xprepare.c
100644 blob 8fb06a537451cbf3335ab4bdacb0f992e9744338    xdiff/xprepare.h
100644 blob 2511aef8d89ab52be5ec6a5e46236b4b6bcd07ea    xdiff/xtypes.h
100644 blob 62cb23dfd37743e4985655998ccabd56db160233    xdiff/xutils.c
100644 blob 4646ce575251b07053f20285be99422d6576603e    xdiff/xutils.h

(注意,在SHA-1和路径之间有一个硬标签
\t
,我在这里的原始文本中保留了这个标签,因为StackOverflow显示了这个OK。)

使用
git ls tree
,只需给它更多参数:

$ git ls-tree HEAD xdiff*
100644 blob 54236f24b9786710f91650ac63f6004cdeb012e6    xdiff-interface.c
100644 blob fbb5a1c3949b6ef6ba0dfb758723a48f3b402190    xdiff-interface.h
040000 tree 4c60b91db5de467cf05e864429dce1b44cb843e7    xdiff
第一个输出字是模式,对于blob,模式总是
100644
100755
。如果为
100755
,则设置可执行位,否则不设置。(有趣的是:git在内部存储整个模式值,作为没有前导零的八进制字符串。上面最后一行中的前导零由
git ls tree
生成)

如果需要,保留文件或目录名;如果它是一个目录(mode
040000
或type
tree
type
字符串实际上是由
mode
内部确定的,在本例中),并且您希望检查其内容,请添加一个尾随斜杠:

$ git ls-tree HEAD xdiff/
100644 blob 4fb7e79410c22fba1fb390af2e09008e932f5ea8    xdiff/xdiff.h
100644 blob 2358a2d6326e54308413cb8a5e6b61eba06324e9    xdiff/xdiffi.c
100644 blob 8b81206c9af0767bd91c4b9e453f7c5c2bde47b1    xdiff/xdiffi.h
100644 blob 993724b11c40bacffee8df927018e5790a265bd4    xdiff/xemit.c
100644 blob d29710770ce40bafa6e9eb2b2ea7c9c8ba43c727    xdiff/xemit.h
100644 blob 73210cb6f3fb5d1cb90b1c5959a5a90e058ea1f2    xdiff/xhistogram.c
100644 blob 526ccb344d231fb978f53b80deb17ec6c8fed368    xdiff/xinclude.h
100644 blob 165a895a93e04b33ca7c8f3839ee85e0eccb4a07    xdiff/xmacros.h
100644 blob f338ad6c757cda29a052960a504715c062ab5dda    xdiff/xmerge.c
100644 blob 04e1a1ab2a863814df3b9a91d4e854704d47f3f5    xdiff/xpatience.c
100644 blob 13b55aba7441bc84d2c5c075110e9ef798ba18f8    xdiff/xprepare.c
100644 blob 8fb06a537451cbf3335ab4bdacb0f992e9744338    xdiff/xprepare.h
100644 blob 2511aef8d89ab52be5ec6a5e46236b4b6bcd07ea    xdiff/xtypes.h
100644 blob 62cb23dfd37743e4985655998ccabd56db160233    xdiff/xutils.c
100644 blob 4646ce575251b07053f20285be99422d6576603e    xdiff/xutils.h

(注意,在SHA-1和路径之间有一个硬标签
\t
,我在这里的原始文本中留下了这个标签,因为StackOverflow显示了这个OK。)

Hmm,我不完全理解为什么
git ls tree HEAD/path/to/file
git ls tree-d HEAD/path/to/directory
不适合您的需要needs@user3159253是的,我只是不明白我可以从doc.嗯,我不完全明白为什么
git-ls-tree-HEAD/path/to/file
git-ls-tree-d-HEAD/path/to/directory
不符合你的要求needs@user3159253是的,我只是不明白我可以从文档中执行此操作。我要添加目录的
-d
标志允许获取给定目录的权限,而不是其内容的权限。与ls-d的做法完全相同。我想补充一点,目录的
-d
标志允许获取给定目录的权限,而不是其内容的权限。与ls-d完全相同。