|
From: | Phil Holmes |
Subject: | Re: Issue 2100: Explanation of branches for CG (issue 5539062) |
Date: | Mon, 16 Jan 2012 16:26:04 -0000 |
Cc: <address@hidden>; <address@hidden> Sent: Monday, January 16, 2012 4:16 PM Subject: Re: Issue 2100: Explanation of branches for CG (issue 5539062)
On 2012/01/16 07:54:41, Graham Percival wrote:On Sun, Jan 15, 2012 at 11:12:49PM +0000,mailto:address@hidden wrote:> At this point, you have pushed dev/cg to staging without polluting > dev/cg with staging. And you can continue to rebase dev/cg withmaster> as needed/desired. You never have to worry about accidentallyputting> some reverted commit back into staging. It's completely foolproof.Having just spent half an hour fixing up my lilygit.tcl branch, I have personally validated the benefit of the approach now reflected in this patch. I will *never* again rebase a working branch to origin/staging. In fact, I will never again have a local branch staging. Instead, I will only rebase my working branches to origin/master, and do a detached head rebase to origin/staging for pushing purposes. I assume this will save me time periodically. And although the time saved may not be huge, the aggravation saved will be. Thanks for getting me to work on this, Graham. The time has now been all worth it. http://codereview.appspot.com/5539062/
Based on my normal fear of git, I always adopt the same routine for pushing, which I derived from David's excellent guidance.:
Before you start thinking about pushing a patch to staging, you need to ensure you have the correct local branches up to date. One time only, edit the .git/config file to look like this (there will be other lines and sections, don't touch these): @example [remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = ssh://git.sv.gnu.org/srv/git/lilypond.git @end example Now, each time you want to make a change and push to staging, do the following: @example git fetch # (to be sure you have the current version of staging) git checkout origin/staging # ... make and commit your change ... e.g. with git am patchname git push origin HEAD:staging @end example Note that this does not work well for complex changes on other branches - if you're doing this you'll need to have better git understanding. However, "make your change" could include applying a patch previously you've made. -- Phil Holmes
[Prev in Thread] | Current Thread | [Next in Thread] |