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

标签 git git-ls-files git-ls-remote git-ls-tree

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

a.txt
b.txt

现在想象一下,在我的远程存储库中只有这些文件之一:

a.txt

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

b.txt

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

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

最佳答案

diff -y <(git ls-files) <(git ls-tree -r master --name-only )

我正在调用diff master 中的文件到本地 ( ls-files )。 1

关于git - 如何比较本地和远程git文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60681868/

相关文章:

git 无法暂存文件,将所有文件显示为重复但 char 大小写不是问题

linux - $(git ls-files -s | wc -l ) 和 $(git ls-files -s >out && wc -l <​​out) 之间的区别

git (ls-remote) - 列出按创建日期排序的 "remote"分支

Git 从上一次提交推送

git - 是否有最大数量的 git stashes?

git - 是否可以在不首先检查整个存储库的情况下进行稀疏检查?

git ls-files,如何转义文件路径中的空格?

git - 为什么 git ls-remote 不列出所有远程引用?

git - 单体仓库 VS. github子模块