Am 08.07.2012 17:43, schrieb pbGit:
Just tried starting again on my local machine because when I tried pushing,
git said that it local was also set to bare init. When I looked this was
the case. Silly me.
So I deleted on my local and added a single file and when I try pushing this
I get the following:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'paul@localhost:/Users/paul/<prject>'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
When I try and pull I then get the following:
fatal: No remote repository specified. Please, specify either a URL or a
remote name from which new revisions should be fetched.
I then addded my repo with the following command, but this is the wrong
git pull --repo=<project>
What the hell am I doing wrong???
This is the moment where you have to begin reading man pages, i.e. "git
fetch", "git help pull", "git help remote" "git help push" (read the
examples as they show typical use cases) or preferably read about it in
books like Pro Git (git-scm.com/book/) or tutorials.
For example the --repo parameter in "git push --repo=<project>" doesn't
exactly do what you think it does. It only sets the default remote repo
from "origin" to <project>. Normally you would just use "git push
<project>". And the equivalent pull command would be "git pull <project>".
Naturally you can configure that git pull or git push will just do what
you want, but for that you need to know what a refspec is and how to use
Generally git pull and git push are not complementary. Neither in effect
nor in parameters they take.
For example assume you have just cloned a remote repository. This will
add configuration that connects both repositories and adds a default
remote repo named origin and adds default refspecs
"git pull" without parameters will then fetch all remote branches into
correpondingly named local remote tracking branches (under
.git/refs/remotes/, do a git branch -a to list them too), but then only
merge one of them with the branch you are in at the moment.
But "git push" will push *all* your local branches into branches of the
same name on the remote repository.
Another difference: If you pull, the merge might fail because of merge
conflicts and you have to manually merge conflicting files. If you push,
this manual merge is not possible so usually only trivial merges called
fast-forward-merges are allowed. That is what happened on your push
Something like "git remote add -m master origin <urlofyourrepo>" does
the same configuration as a "git clone" would do and would allow you to
just use "git pull" without parameters.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html