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分支 - 狀態混合?
- 2. git和分支名稱
- 3. IntelliJ和Git分支名稱
- 4. 同時顯示git diff和git狀態
- 5. 如何讓git diff --ignore-space-change默認
- 6. 沒有結帳分支的Git diff
- 7. Jenkins - 管道訪問git分支名稱
- 8. Git Bash,獲取本地分支名稱
- 9. 在git中切換分支名稱
- 10. 在TFS中使用git分支名稱
- 11. 分支的Git diff,不包括其他分支的提交
- 12. 指向同一分支的兩個Git分支名稱?
- 13. Diff git fork
- 14. 通過分支名稱\ id與git api獲取git提交
- 15. Git - 致命:分支名稱不符合GIT標準
- 16. 如何讓git分支名稱成爲SonarQube項目名稱的一部分?
- 17. 如何包括apk文件名的Git分支名稱自動
- 18. git - 用部分分支名稱擴展commit hook
- 19. 標籤名稱的CVS分支名稱
- 20. 創建git分支,並將原始狀態還原爲上游狀態
- 21. 切換git分支,同時保持當前分支處於衝突狀態
- 22. 常量狀態名稱
- 23. 簽出只有分支名稱的前幾個字符的git分支
- 24. 混帳不問如果我運行git狀態切換分支
- 25. Git:刪除一個分支並返回到之前的狀態
- 26. 在Mac Bash中顯示git分支和狀態
- 27. 超越比較Diff 2分支
- 28. git分支(沒有分支)
- 29. 的grep的Git分支名稱,只返回分行名字中含有「主題」
- 30. git diff比較遠程和本地分支什麼都不做
我只是試圖忽略可能與diff命令不同的某些文件。 – 2011-04-22 02:02:13