Git can be both amazingly simple and mind-blowingly complex. You can start with the basics and work yourself into more complex graph manipulation over time. There’s no need to grok all of it before you can use it. The command that will be most powerful as you learn is man git–. Try using it before you refer to Google for an answer.
With the release of Ruby container support on AWS Elastic Beanstalk, it is now possible to deploy Rails (or any Rack-based) applications onto the AWS infrastructure in just a few easy steps. The container is backed by Amazon EC2 and automatically provisions the machines to use Phusion Passenger (with nginx under the hood). You can run your own local database with your application, or better yet, you can have Elastic Beanstalk automatically set you up with a MySQL database backed by Amazon Relational Database Service (RDS). All of the machines sit behind a load balancer with auto-scaling support automatically configured so you don’t even have to think about ops. Scaling is built-in.
The goal of Wingman is to make software version control as natural as writing software itself; no endless amounts of command line flags, no lengthy commands, and no cheat sheets – just bugs, features, release candidates, hotfixes and releases. Wingman lets you make the changes you need to make with zero confusion, then get back to your work, stress free.
Wingman is fully integrated with GitHub, giving you the best possible experience with keeping your projects synchronized between team members, in addition to the benefit of having all of your work backed up 24/7.
Linus Torvalds -
“Git has taken over where Linux left off separating the geeks into know-nothings and know-it-alls. I didn’t really expect anyone to use it because it’s so hard to use, but that turns out to be its big appeal. No technology can ever be too arcane or complicated for the black t-shirt crowd.”
(Full Story: Linus Torvalds goes off on Linux and Git)
1. Complex information model
The information model is complicated – and you need to know all of it. As a point of reference, consider Subversion: you have files, a working directory, a repository, versions, branches, and tags. That’s pretty much everything you need to know. In fact, branches are tags, and files you already know about, so you really need to learn three new things. Versions are linear, with the odd merge. Now Git: you have files, a working tree, an index, a local repository, a remote repository, remotes (pointers to remote repositories), commits, treeishes (pointers to commits), branches, a stash… and you need to know all of it.
(Full Story: 10 things I hate about Git « Steve Bennett blogs)
1 – Stop using GUI for git, seriously, it’s not that many commands
2 – Be safe, branch out, commit often, merge often
3 – Git rebase to be used on the current branch
4 – Replace git pull with git pull –rebase