2
A
回答
2
這是一個黑客位,但你可以做到這一點
git diff banch --name-status | grep -v this/path
不完全混帳,但做這項工作
0
你可以你不關心的路徑添加到您的.gitignore文件。
編輯:您可以使用git diff files/you/care/about
看你感興趣的diff文件
例如,如果git status
表明一堆文件被更改:
modified: foo/bar
modified: foo/baz
modified: some/more/stuff
modified: and/some/more
可以使用git diff foo
只查看foo
目錄中的更改或git diff some/more/stuff and/some/more
查看除foo
之外的所有內容。
如果您想查看幾個文件的差異,這將會很好,但如果您想要查看除之外的所有文件(如一個或兩個文件),則效果不佳。我不認爲有辦法告訴git diff
使用否定您指定的文件。
另一種方法是使用git add --interactive
,但是對於你正在做的事情可能有點麻煩。
它也證明,.gitignore
不會忽略已經在版本控制下的文件,所以這個想法永遠不會工作。忘記我提到它。 :(
1
正如他們說的〜在這裏:。Exclude a directory from git diff,你可以使用這樣的事情:
git diff --name-only $branch_name | grep -v -E "$excluding" | xargs git diff $branch_name --
...其中branch_name
是其他分支和excluding
是你想排除的格局我不知道混帳二ff最終會提供一個類似的參數,並且我在git文檔中沒有找到這樣的選項,所以這個命令就是我現在使用的。
唯一需要注意的是,你必須在你的工作目錄的頂層(即包含您的git的文件夾相同的文件夾),此命令的工作,因爲你的路徑中傳遞給git diff --
最後通過xargs
與此相關。
您可以製作一個腳本,在您喜歡的外殼中爲您完成工作,例如
#!/bin/zsh
if [[ $# < 2 ]] ; then
echo "Usage: \n gdx [git-diff-params] branch_name extended_reg_exp\n"
echo "\nExamples:\n gdx development jpg \n gdx --name-only master origin/master jar \n gdx development '[a-zA-Z]+'"
exit 1
fi
excluding="[email protected][-1]"
branch_name="[email protected][-2]"
diff_options="[email protected][1,-3]"
## Get a list of all the paths to include
git_paths=$(git diff --name-only $branch_name | grep -v -E "$excluding")
if [[ ${#git_paths} = 0 ]] ; then
#no diffs
exit 0
else
## Escape special characters
git_paths=(${(f)git_paths})
for i in {1..${#git_paths}}
do
git_path=$git_paths[i]
git_path=\"${git_path//\"/\"}\"
git_paths[i]=$git_path
done
## Run the diff
eval "git diff ${=diff_options} $branch_name -- $git_paths"
fi
這需要參數和打印用法和whatnot。我這樣使用它:
gdx HEAD^ "*.jar"
相關問題
- 1. Git diff與上游分支沒有鍵入分支名稱
- 2. 按分支名稱過濾mercurial狀態
- 3. Git分支 - 狀態混合?
- 4. IntelliJ和Git分支名稱
- 5. git和分支名稱
- 6. 同時顯示git diff和git狀態
- 7. 如何讓git diff --ignore-space-change默認
- 8. 創建別名的Git分支名稱
- 9. 查看git diff而不檢出分支?
- 10. 沒有結帳分支的Git diff
- 11. 分支的Git diff,不包括其他分支的提交
- 12. 在TFS中使用git分支名稱
- 13. 的Git分支/標籤名稱^ {}
- 14. posh-git顯示長分支名稱
- 15. Git Bash,獲取本地分支名稱
- 16. git post hook中的分支名稱
- 17. Jenkins - 管道訪問git分支名稱
- 18. 重用的Git分支名稱
- 19. 在git中切換分支名稱
- 20. 提示中的Git分支名稱
- 21. Git teamcity中的短分支名稱
- 22. Maven是否可以根據Git分支名稱動態設置項目名稱?
- 23. 如何將git分支設置爲另一分支的狀態
- 24. Git的 - 刪除遠程分支,在該分支名稱空間
- 25. 指向同一分支的兩個Git分支名稱?
- 26. GIT diff和GIT狀態忽略文件的更改
- 27. Git狀態不顯示更改,但git diff確實
- 28. Diff git fork
- 29. 製作包含「branchfolder /」的分支名稱或類似名稱 - 分支名稱的一部分
- 30. 通過分支名稱\ id與git api獲取git提交
我只是試圖忽略可能與diff命令不同的某些文件。 – 2011-04-22 02:02:13