Is it overkill to use git in one-person project?

One fellow asked me to counter his theory if it does make any sense to work on a one-person project using git. Isn't it better to just use SVN? I disagree. And I will tell you why you have to agree with me.

My theory is that people asking such things just don't know git yet - or even any source code repository tool. They didn't try it and have to correct that error ASAP. Git, just by it's structure, gives us a lot of features that we should desire:

  • No needed server and accounts so you can quickly create git repository AND WORK. You work locally until pushing your work anywhere. Connectionless comitting.
  • Rapid branching and fast operations with branches.
  • You choose which branches will be seen on public server like github (future thinking). So less garbage.
  • You can modify commits until you push them.
  • Easily see differences between commits or branches.
  • It's possible to stash changes for a while without making commits. Just because sometimes we are not sure or want to do other things before continuing current work.
  • You don't want it to take much disk space.
  • Offline statistics.

So it's a pretty rich list of my desires while using Subversion few years ago. There are more benefints while using git but I'm not pointing them because of one-person project.

It's easy to create repository

This is it! No servers, no waiting for connection, no pain.  Internet connection is not needed,  electricity only. OFFLINE, yeah.

but git doesn't have...

At this point everyone should be convinced that git is good. SVN has file locking? Why would you need it for one-person project? Otherwise, make the damn teamwork!

Looking for more features SVN has and git doesn't? Look here and try to tell me that SVN is better for one-person project:

  1. Features of SVN
  2. Features of git

Soooo... gut, I mean - git!

And you're right! Use git then.

Of course, there is one common drawback which people ask me about - which software should I use to use git? (None.)

For a long time most users of git introduce git to newcomers by console. It's easy to anticipate that it dispirits them to use git because it's more nicely to move mouse and see windows instead of black shell with white blinking command prompt cursor.

Well, my opinion is that it's just a state of the mind. Clicking by mouse here and there has to be teached the same way as command line commands. It can be even worse just because of the window design. Interface designer can propose some strict path to use commands in given order. Or may not show all options. Shell does not do that. So use the shell.

My last word before you start using git

Going back to my theory. People who ask me if it's worth to use git at all (one-person project or more-person project) make comparisons. You will need my advice. Try to not think about SVN commands (or anything else you use) while learning git. Good luck and have fun.

Resources