I think for git diff, this "no wrapping" is a feature not a bug. Git is made for code in general and Linux (as in, the kernel codebase) in particular. If your lines are long enough or your terminal is narrow enough that you need lines to be wrapped, then it may be that your lines are getting too long. The Linux coding style mandates limiting lines to 80 characters and breaking up lines which are longer than this limit. This may seem arbitrary and may not be a great idea in a language which isn't C, but for Linux, this limit allows levels of indentation which are too deep to be more easily seen because when code gets into too many levels of indentation it will become very obvious because several statements end up split across lines. Beyond that, Linus prefers to chop lines over wrapping, and it seems he just put his personal preference into his tool because it isn't that big a deal.