goal: upstream remote upstream=git://anonscm.debian.org/users/cjwatson/base-passwd.git, own remote origin=git@gitlab.syseleven.de:oklischat/sys11-base-passwd.git (repository empty at the beginning). Track upstream's master in local branch "umaster", own remote's master in local branch "master". (clustermgr)oklischat@oklischat:~/src$ git clone -o upstream -n git://anonscm.debian.org/users/cjwatson/base-passwd.git # name the remote "upstream" instead of the default "origin", no wd checkout (-n) Cloning into 'base-passwd'... remote: Counting objects: 1275, done. remote: Compressing objects: 100% (448/448), done. remote: Total 1275 (delta 889), reused 1168 (delta 817) Receiving objects: 100% (1275/1275), 256.96 KiB | 0 bytes/s, done. Resolving deltas: 100% (889/889), done. Checking connectivity... done. (clustermgr)oklischat@oklischat:~/src$ cd base-passwd (clustermgr)oklischat@oklischat:~/src/base-passwd$ ls (clustermgr)oklischat@oklischat:~/src/base-passwd$ git branch -avv * master e84fe43 [upstream/master] Policy version 3.9.6: no changes required. remotes/upstream/HEAD -> upstream/master remotes/upstream/master e84fe43 Policy version 3.9.6: no changes required. (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ git checkout -b umaster upstream/master Branch umaster set up to track remote branch master from upstream. Switched to a new branch 'umaster' (clustermgr)oklischat@oklischat:~/src/base-passwd$ ls COPYING Makefile.am README configure.ac debian doc group.master man passwd.master update-passwd.c (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ git branch -avv master e84fe43 [upstream/master] Policy version 3.9.6: no changes required. * umaster e84fe43 [upstream/master] Policy version 3.9.6: no changes required. remotes/upstream/HEAD -> upstream/master remotes/upstream/master e84fe43 Policy version 3.9.6: no changes required. (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ # master tracks the wrong thing, delete it (clustermgr)oklischat@oklischat:~/src/base-passwd$ git branch -d master Deleted branch master (was e84fe43). (clustermgr)oklischat@oklischat:~/src/base-passwd$ git branch -avv * umaster e84fe43 [upstream/master] Policy version 3.9.6: no changes required. remotes/upstream/HEAD -> upstream/master remotes/upstream/master e84fe43 Policy version 3.9.6: no changes required. (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ git remote -v upstream git://anonscm.debian.org/users/cjwatson/base-passwd.git (fetch) upstream git://anonscm.debian.org/users/cjwatson/base-passwd.git (push) (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ git remote add origin git@gitlab.syseleven.de:oklischat/sys11-base-passwd.git (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ git checkout -b master Switched to a new branch 'master' (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ git branch -vv * master e84fe43 Policy version 3.9.6: no changes required. umaster e84fe43 [upstream/master] Policy version 3.9.6: no changes required. (clustermgr)oklischat@oklischat:~/src/base-passwd$ git push origin master Total 0 (delta 0), reused 0 (delta 0) To git@gitlab.syseleven.de:oklischat/sys11-base-passwd.git * [new branch] master -> master (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ git branch -vv * master e84fe43 Policy version 3.9.6: no changes required. # <<- doesn't track newly created origin/master?? umaster e84fe43 [upstream/master] Policy version 3.9.6: no changes required. (clustermgr)oklischat@oklischat:~/src/base-passwd$ git branch -avv * master e84fe43 Policy version 3.9.6: no changes required. umaster e84fe43 [upstream/master] Policy version 3.9.6: no changes required. remotes/origin/master e84fe43 Policy version 3.9.6: no changes required. remotes/origin/umaster e84fe43 Policy version 3.9.6: no changes required. remotes/upstream/HEAD -> upstream/master remotes/upstream/master e84fe43 Policy version 3.9.6: no changes required. (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ 11:25 < multi_io> "git push " creates a local branch pointer "remotes//", but doesn't make the local track the / ?? 11:25 < multi_io> (if it didn't already) 11:26 < jast> multi_io: you can use -u to tell git to set that up 11:26 < multi_io> jast: thanks (clustermgr)oklischat@oklischat:~/src/base-passwd$ git push -u origin master Branch master set up to track remote branch master from origin. Everything up-to-date (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ (clustermgr)oklischat@oklischat:~/src/base-passwd$ git branch -avv * master e84fe43 [origin/master] Policy version 3.9.6: no changes required. umaster e84fe43 [upstream/master] Policy version 3.9.6: no changes required. remotes/origin/master e84fe43 Policy version 3.9.6: no changes required. remotes/origin/umaster e84fe43 Policy version 3.9.6: no changes required. remotes/upstream/HEAD -> upstream/master remotes/upstream/master e84fe43 Policy version 3.9.6: no changes required. (clustermgr)oklischat@oklischat:~/src/base-passwd$ Setting it up locally (when the local and remote branch ref already exist locally): git branch -u refs/remotes//: