[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Git workflow overview
From: |
Ludovic Courtès |
Subject: |
Git workflow overview |
Date: |
Thu, 27 Mar 2008 22:29:46 +0100 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux) |
Hi,
Just to clarify things, the following illustrates the typical Git
workflow.
First, we need to get a copy of the repository:
$ git-clone ssh://address@hidden/srv/git/guile.git
$ cd guile
Then, imagine we want to fix something both in HEAD and 1.8. We are
currently in `master' (the equivalent of HEAD), and it is the only
branch that we currently have:
$ git-branch
* master
Eventually, we'll want to do things in the `branch_release-1-8' branch
as well, so we need to create a local branch tracking the
`branch_release-1-8' branch at Savannah:
$ git-branch --track branch_release-1-8 origin/branch_release-1-8
Branch branch_release-1-8 set up to track remote branch
refs/remotes/origin/branch_release-1-8.
We now have the two branches:
$ git-branch
branch_release-1-8
* master
We want to commit our fix to `master', then push it to the Savannah
repo's `master' branch (after making sure that we are up-to-date), then
to apply it to the 1.8 branch and push it:
# hack the thing...
$ git-commit -a -m "The fix."
$ git-pull # Check whether we're up-to-date.
$ git-push
$ git-checkout branch_release-1-8
$ git-pull # Update.
$ git-cherry-pick master # Apply the change we made in `master'.
# fix any conflicts...
$ git-push # Push the change to `branch_release-1-8'.
That gives a rough overview of the thing. For larger changes, it will
be better to use a separate branch locally, using `git-rebase' right
before merging it, etc. There are surely good tutorials at
http://git.or.cz/ .
Enjoy!
Ludo'.
- Git workflow overview,
Ludovic Courtès <=