如何确定git存储库中的给定目录是否包含未按下,已提交的更改?
e.g。给定一个包含两个目录A和B的存储库,当且仅当git日志包含更新尚未被推送到远程主服务器的A的内容的提交时才返回true。
对于上下文,我的用例是一个具有两种语言标准的混合存储库,我有兴趣在pre-push的js目录上运行linter和test套件,只有这些文件已被更改。
答案 0 :(得分:2)
您可以使用以下解决方案。 Git将检查远程以查看提交是否存在。如果找到了提交,那么你将获得提交,因为我们只是获取行数。如果行计数为0,则不会发现提交
git log HEAD --pretty=oneline --not --remotes -- path | wc -l
示例
git log HEAD --pretty=oneline --not --remotes -- src/A | wc -l