5

On hginit.com, a typical hg workflow is described as:

1.If you haven’t done so in a while, get the latest version that everyone else is working off of:
hg pull
hg up
2.Make some changes
3.Commit them (locally)
4.Repeat steps 2-3 until you’ve got some nice code that you’re willing to
inflict on everyone else
5.When you’re ready to share:
hg pull to get everyone else’s changes (if there are any)
hg merge to merge them into yours
test! to make sure the merge didn’t screw anything up
hg commit (the merge) hg push

I use hg pretty regularly, and this all makes sense to me. I've just started using git, and I haven't found anything that describes a typical workflow like the above quote. I was hoping someone could explain the difference in workflow between these two tools and describe a typical workflow in git.

user
  • 53
  • 2
  • As you seem to be new to Stack Overflow, note that you should vote up all answers that you find helpful, and accept the one answer (if any) to each of your questions that you feel has solved it. – Phrogz Jan 11 '11 at 21:30
  • 1
    @Phrogz You need at least 15Rep to vote up – Rudi Jan 12 '11 at 08:18

1 Answers1

5

It's about the same:

  1. git pull # Get latest code
  2. Make some changes
  3. git add foo/*.rb # Add files to commit
  4. git commit -m "Made it more betta" # Make and describe the commit
  5. git push # Push the changes to some master repo
    • The push will fail if you're behind the master, in which case you must:
      1. git pull # Automatically merge what it can, and show conflicts
      2. Manually fix any conflicts
      3. git add . # Add whatever was conflicting
      4. git commit -m "Merging with master"
      5. git push

As with Mercurial you can repeat steps 2-4 as much as you like; you don't have to push after every commit.

Phrogz
  • 296,393
  • 112
  • 651
  • 745
  • And yes, **test!** at appropriate spots to ensure your changes are valid. But that is part of the development workflow, not the source control workflow. – Phrogz Jan 11 '11 at 17:30
  • 1
    Alos note that you should not push into a non-bare repository. See http://stackoverflow.com/questions/1764380/push-to-non-bare-repository/1764793#1764793 and http://stackoverflow.com/questions/3067277/working-with-git-from-2-laptops-with-no-bare-repo – Rudi Jan 12 '11 at 08:28