On Thu, Oct 30, 2008 at 1:04 PM, Bill Lear <rael@xxxxxxxxxx> wrote: > On Wednesday, October 29, 2008 at 22:12:18 (-0700) Sam Vilain writes: >>On Wed, 2008-10-29 at 09:23 -0600, Bill Lear wrote: >>> We use git in a way that makes it desirable for us to only push/pull >>> to the same remote branch. So, if I'm in branch X, I want 'git push' >>> to push to origin/X, and 'git pull' to fetch into origin/X and then >>> merge into X from origin/X. >>> >>> In other words, we want git push/pull to behave in branches other than >>> master the same way it does when in master. >>> >>> I have discovered the '--track' option when creating a local branch, >>> and this appears to me to be the thing that gives us the desired >>> behavior. >> >>As things currently stand this is not achievable behaviour. The >>behaviour of 'git push' is to push all matching refs. If you are lucky >>this is what you intended, but it also pushes any changes to *other* >>branches that you have made. >> >>I have tabled a change proposal to make it work as you suggest in a >>separate thread. > > Ok, now I'm confused. The ONLY thing I want to prevent is the > "crossing of streams" issue. If I am on branch X and issue 'git > push', I want X, and ONLY X, to be pushed to the remote repository's X > branch --- I don't care if other branches are pushed to their > respective remote branches, as long as they don't get merged to X. No branches will get merged in a push. > > So, are you saying that Santi was incorrect, and that in fact > the push will result in a merge of the branches? Sorry, I was (partly) incorrect because I was only talking about pull. For push you can add a "push = HEAD" config to the remote and then the "git push" will only push the current branch (with the corresponding matching remote branch). $ git config remote.origin.push HEAD Strictly speaking when you push (with the default config or with the above trick) you push matching branches (it doesn't matter what is the branch.<remote>.merge). Currently there is no way to say "push to the corresponding tracking branch" Still I think this will work as you want (as long as your local and remote branch have the same name): $ git clone $url $ cd path $ git config remote.origin.push HEAD $ git checkout -b branch origin/branch $ work, commit,... $ git push HTH, Santi -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html