So I have a git repo on my machine at home, that’s cloned from a repo on git.xfce.org. I was doing some work in it the other day — in a private branch, not published to git.xfce.org — and I wanted to continue working on the private branch from another machine. But… it won’t work. Let’s say ‘machine1′ has the repo with the private branch, and ‘machine2′ is where I want to work today.
So, on machine2, I cloned from the master repo on git.xfce.org:
[brian@machine2 src $] git clone firstname.lastname@example.org:kelnos/airconfig [... stuff happens...] [brian@machine2 src $] cd airconfig [brian@machine2 airconfig $] git branch -a * master origin/master origin/pre-hal
Ok, cool, that’s what I expect. So I ssh over to machine1 (the one I eventually want to pull from), and I check out my list of branches there:
[brian@machine1 airconfig $] git branch -a advanced-ip-settings master * nm-frontend notification-rework reconnect origin/master origin/pre-hal
Ok, cool. the ‘nm-frontend’ branch is the one I want to pull to machine2. So on machine2, I do this:
[brian@machine2 airconfig $] git remote add machine1 machine1:src/airconfig [brian@machine2 airconfig $] git pull machine1 nm-frontend fatal: Couldn't find remote ref nm-frontend fatal: The remote end hung up unexpectedly
Uh… what? Do I have the wrong syntax? Ok, let me just try to pull everything from the remote:
[brian@machine2 airconfig $] git pull machine1 remote: Counting objects: 1085, done. remote: Compressing objects: 100% (301/301), done. remote: Total 1085 (delta 774), reused 1085 (delta 774) Receiving objects: 100% (1085/1085), 323.43 KiB | 14 KiB/s, done. Resolving deltas: 100% (774/774), done. From machine1:src/airconfig * [new branch] advanced-ip-settings -> machine1/advanced-ip-settings * [new branch] master -> machine1/master * [new branch] pre-hal -> machine1/pre-hal
And then at the bottom it prints out a message about not knowing which local branches to merge stuff into. That’s fine, no big deal. But… how come it pulled 3 of my local branches on machine1, but left off 2 of them (‘notification-rework’ and ‘nm-frontend’). No combination of src:dest refspecs seem to do the trick. Pulling one of the 3 branches it seems to like using the syntax I used above seems to work fine, but it can’t see the one I want. What am I doing wrong…?