[英]Ignore files from git diff or git status using command shell
我想使用简单的文件模式从命令shell运行git diff
或git status
时忽略文件。
我能够“将diff或status仅应用于与此模式匹配的文件”,但我不知道如何说“忽略匹配此模式的文件”。
我现在要将命令应用于文件子集的是:
$ git status */models.py
$ git diff */models.py
我希望能够从命令行执行此操作,而无需将首选项设置为Git。 那可能吗?
没有标准方法,没有命令行标志来执行此操作。
如果要排除的更改是您最终要提交的良好更改,那么我建议将它们添加到暂存区域。 这样你可以做git diff
而且它们不会出现。
另一方面,如果要排除的更改是您可能不想提交的糟糕的实验性更改,那么将它们添加到临时区域可能会很危险,因为它们很容易被错误地提交。 在这种情况下,最好将所有好的更改添加到暂存区域,并使用git diff --cached
查看它们的差异。
至于从状态中排除,我建议只使用grep -v
:
git status | grep -v stuff-to-exclude
您可以使用git ls-files
, grep
和xargs
如:
git ls-files | grep -v models.py | xargs git diff
如“ git update-index --assume-unchanged
on directory ”中所示,您可以使用以下命令进行测试和播放:
git update-index --assume-unchanged
这样, git diff
或git status
应该忽略你刚刚标记为“未更改”的文件。
注意:要恢复: git update-index --no-assume-unchanged
。
(如果这不完全有效,请尝试git update-index --skip-worktree
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.