簡體   English   中英

使用命令shell忽略git diff或git status中的文件

[英]Ignore files from git diff or git status using command shell

我想使用簡單的文件模式從命令shell運行git diffgit 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-filesgrepxargs如:

git ls-files | grep -v models.py | xargs git diff

如“ git update-index --assume-unchanged on directory ”中所示,您可以使用以下命令進行測試和播放:

 git update-index --assume-unchanged 

這樣, git diffgit status應該忽略你剛剛標記為“未更改”的文件。

注意:要恢復: git update-index --no-assume-unchanged

(如果這不完全有效,請嘗試git update-index --skip-worktree )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM