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

Re: Newbie using git -- need a little help

From
TGThomas Glanzmann <thomas@glanzmann.de>
Date
Jun 17, 2007, 20:30 UTC
Message-ID
<20070617203046.GG21291@cip.informatik.uni-erlangen.de>
In-Reply-To
<2218.85747.qm@web57401.mail.re1.yahoo.com>
Hello Robert,
> The /home/cip/adm/sithglan/work/repositories/private/astro.git is
> simply a .git directory located on the "server", and it doesn't
> actually contain any working code (yet), right?
Right.

(faui02) [~/work/repositories/private/astro.git] ls HEAD branches/ config description hooks/ info/ objects/ refs/ remotes/

> So what this command is doing is telling git where the "origin" is --
> on the remote server, correct?  Also, is the default protocol (since
> all you typed was 131.188.30.102:/.../astro.git) is SSH correct?

The default protocol is git over ssh. And it adds a shorthand called origin that points to the repository at the server you can now say:

        git push origin
        git pull origin
Since origin is the default, you can also say:
        git push
        git pull

Note when you do a "git clone ip:/path/to/dir.git", git will automatically set up the reference to origin. You don't have to do it yourself. In my initial example you had to do it yourself, because at the time you started with the new project there was no origin because you just started it.

Show 5 quoted lines
> I'm a little lost on what 'origin' refers to precisely.  Is origin
> considered the "root" of all the changes (the workspace as it was
> originally before any patches)?  Or is it a location for the working
> files?  You give a definition below in your e-mail but I'm still not
> completely sure what it is referring to.

"origin" is a shorthand for the remote repository. If you say git pull git fetches the objects that are reference in the remote repository by the head "master" (by default) and puts that in a local file called .git/refs/remotes/origin/master:

(faui02) [~/work/blastwave] ls -al .git/refs/remotes/origin/master -rw-r--r-- 1 sithglan icipguru 41 Jun 14 18:35 .git/refs/remotes/origin/master (faui02) [~/work/blastwave] cat !$ cat .git/refs/remotes/origin/master 50da5cf500b8b57e32720ffe80fbabaadd7c8c9f

After that it tries to merge that remote head into your local branches head. Most of the time that is .git/refs/heads/master

If you type in only "git fetch" it gets the objects but doesn't do any merging.

So to answer your question. Origin is a copy of the repository you pull/push by default. The objects of these tree are in your object store but the actualy HEAD commit object is in the file I "cat" earlier in this e-Mail.

        Thomas
Previous: Robert Smith
Message 2 of 2 in “Re: Newbie using git -- need a little help”
  1. Robert SmithJun 17, 2007
  2. Thomas GlanzmannJun 17, 2007

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.