[英]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.