Re: What is missing from Git v2.0
From: Felipe Contreras <hidden>
Date: 2016-06-15 23:00:46
brian m. carlson wrote:
On Mon, Apr 21, 2014 at 09:24:33PM +0200, Sebastian Schuberth wrote:quoted
BTW, in my experience people tend to stick to predefined aliases instead of redefining them to something (completely) different. This means that having default aliases will very likely enable one to use the same short commands on one's colleague's PC (instead of you running into issues because the same alias was defined to a different command). If we don't standardize this now people will come up with their own definitions [1] [2] (and many others if you just search GitHub) which are again likely to differ (slightly), hindering interoperability.Unfortunately, that's already happened. Some people alias ci to commit, and some people alias it to commit -a. There is literally no choice you can make there that will make everyone happy.
Of course we can: a) The people that have 'alias.co = git commit' will keep their alias b) The people that have 'alias.co = git commit -a' will keep their alias c) The people that haven't set alias.co, will get the default
If you provide default aliases, people will expect them to work everywhere, and then be confused when they don't.
This argument was already brought up, and already proved to be false. Mercurial allows not only to override the default alias, but to override the core commands, so you can alias 'hg push' to 'hg push --force'. According to your hypothesis people using Mercurial would get confused when basic commands work on certain machines and not others. This is not the case. I challenge you to find a single instance when people got confused because of the configured aliases.
It's much better to let people alias what they want on their own. I understand the frustration of having to work on others' machines when they don't have your aliases, because every time I type "git pff"[0] and it fails, it drives me crazy, but there's just no sane defaults.
Yes there are sane defaults. co = checkout ci = commit rb = rebase st = status br = branch dt = difftool mt = mergetool -- Felipe Contreras