git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Newbie: Branch management

From
Allan Kelly <allankelly@gmail.com>
Date
Jul 22, 2009, 21:45 UTC
Message-ID
<9586f3420907221445k2a8592d2ifacba57f3519f113@mail.gmail.com>
In-Reply-To
<446739.83600.qm@web53410.mail.re2.yahoo.com>
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@yahoo.com>:
Show 26 quoted lines
>
> 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@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Previous: Dr. Jennifer NussbaumNext: Allen Johnson
Message 2 of 4 in “Newbie: Branch management”
  1. Dr. Jennifer NussbaumJul 22, 2009
  2. Allan KellyJul 22, 2009
  3. Allen JohnsonJul 23, 2009
  4. Tim HarperJul 23, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.