Hi Jennifer, Like you I'm quite a new git user so I doubt I can entirely solve your problem. However reading your mail, I recall my own initial confusion. Like you, I maintain a main server and various work desktops. Essentially I want my work status/environment replicated on-demand around these desktops, with the server as the synch-point. Sounds like you. My observation is that the granularity of git which makes it very malleable, is a problem when you want to do "broad brush" things like this (and this is the typical Unix "feature-not-a-bug!"). So, I think you need to write a few wee scripts as I have done. I've set up very small scripts to execute a sequence of local and ssh-based remote commands to sync things as I expect. For example, 'git add .;git commit -a -m "$MSG"; git push;' is fine but the files in the origin server directory are out of sync for subsequent processing & upload to the web site. This confused me a _lot_. So I need 'ssh server_name "cd $SERVER_DIR && git checkout -f"'. Now the server dir has the same content as my working dir. I always call this script 'publish' and have an appropriate version in the root of each of my working repos (the post-git compile/upload stage differs). Then in vim I routinely execute ':./publish <project> <commit msg> <upload Y/N>' from wherever I'm working. If you want my (very simple!) 'publish' code then drop me a line. It may give you a start. HTH! Cheers, al. 2009/7/22 Dr. Jennifer Nussbaum <bg271828@xxxxxxxxx>: > > Hi, > > I hope its OK to ask basic questions on this list. > > Im a recent convert to git and having trouble with branches. I mostly work on projects by myself, and what I want is that all branches of everything Im doing are in sync everywhere. > > I have a remote repository on my production server that serves as the "main" repository. Then i work on projects on a number of different computers--my main home computer, my main work machine, several non-main computers :-) ... > > I've found it very confusing dealing with branches in this environment. If I have my "master" branch, and decide that i want a "refactoring-templates" branch, what Id *like* to do is create that branch, work on it, commit it, and when I say "git push" I want everything that's new on that computer to be synced to the "main" repository. And then when I get to the next computer, I want to be able to say "git pull" and have everything on that computer by synced *from* the "main" repository. > > Instead I get confused by having to push branches separately, and it's confusing that when I do a pull it doesnt necessarily get other branches unless I specify them directly, and so on. > > I've looked at the docs on branches and there's something i guess Im missing because this still seems very difficult. Can someone giving me advice on the best way to keep this kind of thing organized? > > Thanks! > > Jen > > > > -- > 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 > -- 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