Re: Newbie grief
From: Jakub Narebski <hidden>
Date: 2016-06-15 22:53:43
Rich Pixley [off-list ref] writes:
On 5/1/12 11:20 , Michael Witten wrote:quoted
On Tue, May 1, 2012 at 18:15, Rich Pixley[off-list ref] wrote:quoted
I want pull to work even without merging. I want to be able to share a branch between different repositories and different users while the source code control system tracks this for meI believe you are missing the point that a `pull' in git is a `fetch' followed by a `merge'. You should read about the `fetch' command by reading (`git help fetch'), and make sure you understand how to use refspecs; you will probably find it very instructive to play around by specifying explicit refspecs to `git fetch' rather than relying on the implicit rules (which can be somewhat confusing).
[...]
That git uses the word "pull" to mean something different than previous source code control systems only adds to the confusion. I was using "pull" in the more general sense of pushing and pulling data, not in the very narrow meaning of "git fetch + git merge".
In using "pull" vs "fetch" Git follows the convention of BitKeeper (proprietary distributed version control system which was used for Linux kernel development 'till "BitKeeper fiasco", and which Git replaced).
I'm still pretty much lost on refspecs and refs. The terms are apparently not used in the manuals I've been reading and they don't seem to be used consistently even within git error messages. Is "refspec" the git word for the branch pointer that points to the childless commit that defines a branch?
"Ref" in Git is a named reference (pointer) to a commit in DAG of revisions, i.e. either [local] branch, tag, remote-tracking branch, etc. "Refspec" is a specification of mapping between ref name in remote repository and "tracking" ref in local repository, e.g. refs/heads/*:refs/remotes/origin/* refs/tags/*:refs/tags/* See any of git-pull(1), git-fetch(1) and git-push(1) manpages. -- Jakub Narebski