git - 如何比较本地和远程 git 文件?
问题描述
我需要列出仅存在于本地的所有跟踪的提交文件。假设我的本地仓库是远程仓库(在 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 hooks 的一个很好的用例。
解决方案
我想我已经弄清楚了:
git fetch origin && comm -2 -3 \
<(sort <(git ls-tree -r master --name-only)) \
<(sort <(git ls-tree -r origin/master --name-only))
最后结果:
b.txt
谢谢torek和polareper。你的建议很有帮助。
推荐阅读
- sql - PostgreSQL ANY IN 子选择结果
- sql - 在 SQL 'case when' 中满足任何条件时返回值
- flutter - 有没有办法在颤振中验证国际电话号码
- ios - 修改日期和时间生成代码签名错误
- angular - 为每个请求添加静态值的授权标头
- paypal - 将 wix + paypal 集成到结帐时的 paypal 注册/登录页面
- reactjs - 对最终用户隐藏 api_call
- python - 让 tkinter 在创建的窗口中显示输出,而不是在我的 bash 终端中
- json - 定义属性名称别名
- typescript - 如何在角度 8 中将数据从一个组件传递到另一个组件?