Johan 't Hart <johanthart@xxxxxxxxx> writes: > Francis Moreau schreef: >> hello, >> >> Let's say I'm on a branch called 'foo'. >> >> I tried to rebase this branch by using 'git pull --rebase'. >> >> I first tried the following command: >> >> $ git pull --rebase origin master:foo >> remote: Counting objects: 5, done. >> remote: Total 3 (delta 0), reused 0 (delta 0) >> Unpacking objects: 100% (3/3), done. >> From /dev/shm/git/A >> ! [rejected] master -> foo (non fast forward) > > When using a refspec, you usually mean to update a remote tracking > branch, like refs/remotes/origin/master. Internally the refspec > parameter is passed to git fetch, which fast-forwards your local > tracking branch to match the remote branch. > > With this command, you make git clear you want to fast-forward your > branch refs/foo to match the remotes master branch, and then rebase > your current branch on that foo branch. > > Foo probably is also your current branch. So what you probably want is > to fetch the remotes master branch and rebase your current branch foo > on it. You could do it this way: > >> Then I tried: >> >> $ git pull --rebase origin master >> >> which worked. > > This does not update any remote tracking branches, but it will rebase > your foo branch on the remote master branch (which is what you want) > It could also be done with: > > git pull --rebase origin master:origin/master > > This will also update your remote tracking branch > refs/remotes/origin/master to match the master branch on the remote > repo. Your foo branch will then be rebased onto it. > >> >> Reading the man git-pull I would assume the 2 commands are equivalent >> but obviously they're not. >> >> So the question is: why ? > > So, thats why :) They're not the same. Many words... Hope you > understand... I hope I understood it well too..? > Looks like you did :) I've been somehow confused by the git-pull man page, which says: A parameter <ref> without a colon is equivalent to <ref>: when pulling/fetching, so it merges <ref> into the current branch without storing the remote branch anywhere locally So I thought that both of the commands were equivalent for 'git pull --rebase'. Thanks for the explanation. -- Francis -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html