13
Jan 12

Reset your last commit in git

So, you committed a change in your local repo and then realized you had the wrong branch? This happens to me a lot and the command I found the most useful for this purpose is:

git reset --soft HEAD^

git reset

Run the above 2 commands and you will have your uncommitted files back. After that you can switch to the right branch and commit them again.

 


29
Dec 11

Git branching model followed by us

We use the below branching model for our products JustUnfollow and GrabInbox . This is the article that made me use this branching model.

We have 2 parallel branches – ‘master’ and ‘develop’. All development occurs on the ‘develop’ branch. You can create new branches from the ‘develop’ branch and then merge them back to ‘develop’ once a feature is ready.

When it’s time to deploy a feature, we create a new ‘release-x.x’ (x.x = version) branch from the ‘develop’ branch. We can test this release branch, fix bugs and other small changes to make it ready for release. Once we are certain this branch is ready for release, we merge it with ‘develop’ and also ‘master’. We then tag this commit in master and deploy the ‘master’ to production.

Example git commands:

git checkout develop
git checkout -b release-0.1 develop
git checkout develop
git merge –no-ff release-0.1 develop
git checkout master
git merge –no-ff release-0.1 master
git tag “0.1″
git branch -d release-0.1

Now, if there are bug fixes that need to go into production quickly, we create a new ‘hotfix-x.x’ branch from ‘master’. After fixing the bug, we merge ‘hotfix-x.x’ to ‘master’ and also ‘develop’. We then tag this release in ‘master’ and deploy the ‘master’ to production.

Example git commands:

git checkout master
git checkout -b hotfix-0.1.1 master
git checkout develop
git merge –no-ff hotfix-0.1.1 develop
git checkout master
git merge –no-ff hotfix-0.1.1 master
git tag “0.1.1″
git branch -d hotfix-0.1.1


09
Mar 11

Deleting a remote git branch

Yeah, so I’ve been using git from a few months now and I must say, compared to the other version controls, this has given me the most pain. But, that doesn’t mean I don’t like git or won’t use it. In fact I now prefer git over the other version controls out there.

I recently had to delete a remote git branch. After some search found that the command to do this is :

git push origin :branch-name

Of course, you would still need to delete your local git branch using

git branch -d branch-name

Update April, 2011: You can also delete a remote branch in Git using the command below:

git branch -d -r origin/branch-name