Here are a bunch of really basic usability issues I have with git: 1. cloning from a new empty repo fails, and so do a lot of other operations. This adds unnecessary steps to setting up a new shared repo. 2. git --bare init. The flag goes before the operation unlike every other flag? 3. It's not obvious whether operations work on the working directory/the "index"/the repository e.g. get reset --soft, --mixed, --hard. git diff --cached 4. The index is inconsistently referred to as too many different things (cache, index, staging area) and only the last one makes any intuitive sense to a new user. This is partially a CLI issue, and partially a documentation issue, but both add up to cause confusion. 5. Most commands require lots of flags, and don't have reasonable defaults. e.g. archive. git archive --format=tar --prefix=myproject/ HEAD | gzip >myproject.tar.gz Should just be: git archive run from the root of the repo. This is what I want to do 90% of the time, so it should just have the proper defaults, and not make me look at the man page every time I want to use it. 6. Where is the bug tracker? If people users can't find the bug tracker, they can't report issues, and obnoxious bugs go unfixed, or people have to whine on the mailing list. There should be a nice big link on the front page of git-scm.com. A bug tracker is really the only way for the vast majority of a community that use a tool can give feedback on the problems the tool has. 7. Man pages: It's nice we have them, but we shouldn't need them to do basic stuff. I rarely had to look at the man pages using svn, but every single time I use git I have to dig into these things. Frankly, I have better things to do than RTFM. 8. There's no obvious way to make a remote your default push pull location without editing the git config file. Why not just something like git remote setdefault origin or even git remote add --default origin http://somegiturl.org/ This come up in the use case where I: 1. set up a remote bare repo 2. push from my local repo, and thence forth want to keep local and remote in sink. Right now I have to modify .git/config to do this. It's ok to have kind of a weak UI on a new tool, when people are busy adding basic functionality. However, at this point git already has way more features than most of the competition, and the needless complexity of the CLI is the biggest issue in day to day use. Brendan -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html