Skip navigation

Tag Archives: tutorial

For Part 2 of our 60-second Git tutorial, we’ll look at some super simple branching and merging.

git branch tells you which branch you’re on. git branch -a lists all branches, even remote ones.

git checkout mybranch checks out the branch you want.

git checkout -b newbranch creates a new branch from the one you’re on, and checks it out for you.

git checkout master && git merge mybranch merges changes from one branch to your master branch. If you don’t want to commit the changes, you can do git merge --no-commit mybranch instead.

So far, we’ve only talked about local git usage. Isn’t it cool that you can do so much without even having a server set up with our repo? I think so.

Part 3 will include pulling and pushing your changes to remote repos.

First, the mental hurdles:
You don’t need a server to have a git repository. All your commit history is available locally and quickly, with simple commands. Same with branches and tags. Git “checkout” and “commit” are commands you run locally. Svn “checkout” and “commit” are really more like “pull” and “push” with git.

Now, the commands:
rails myapp && cd myapp && git init && git add . && git commit -a creates a repo and makes the first commit (but still nothing is sent to any server; all work is done locally in your own repository)

echo "my app rocks" > README && git add README && git commit -a makes another commit

git rm path/to/remove && git commit -a

git reset --hard HEAD returns your repo to last committed state (cancels working changes) I’m still fighting with this one. It seems the best way might be to do a git checkout -f instead.

That’s it for the first part. Part 2 will be next.