Re: Newbie using git -- need a little help
From: Thomas Glanzmann <hidden>
Date: 2016-06-15 22:43:17
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.
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