TL; DR: Ich habe einen "verfolgten" Zweig, den ich nicht ziehen kann.
Also hier bin ich in "Bucket-4":
$ git branch -v
bucket-1 410f7b5 * gh-53 * gh-48 * "Share App"
bucket-2 7ed70a2 * upgrade to SOLR 3.3.0
bucket-3 400ffe4 * emergency fix prod issue
* bucket-4 64c2414 Merge branch 'bucket-3' into bucket-4
master 8dc4854 [ahead 1] * gh-73
Ich möchte Änderungen von meiner Fernbedienung übernehmen:
$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.bucket-4.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "bucket-4"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
Hmm, seltsam, ich dachte, ich hätte bereits "Bucket-4" als Tracking-Zweig hinzugefügt. Mal schauen:
$ git remote show origin
* remote origin
Fetch URL: git@github.com:abcd/main.git
Push URL: git@github.com:abcd/main.git
HEAD branch (remote HEAD is ambiguous, may be one of the following):
bucket-3
master
Remote branches:
bucket-1 tracked
bucket-2 tracked
bucket-3 tracked
bucket-4 tracked
master tracked
Local branches configured for 'git pull':
bucket-1 merges with remote bucket-1
bucket-2 merges with remote bucket-2
bucket-3 merges with remote bucket-3
master merges with remote master
Local refs configured for 'git push':
bucket-1 pushes to bucket-1 (up to date)
bucket-2 pushes to bucket-2 (up to date)
bucket-3 pushes to bucket-3 (up to date)
bucket-4 pushes to bucket-4 (local out of date)
master pushes to master (fast-forwardable)
In der Tat ist Bucket-4 als "verfolgt" markiert, aber irgendwie ist es für Push, aber nicht für Pull konfiguriert.
Wenn ich .git/config
mir meine Datei ansehe, sehe ich, dass ich für die meisten meiner Zweige "Remote" - und "Merge" -Einträge habe, aber nicht für Bucket-4. Wie wird es ohne dies überhaupt als "verfolgt" betrachtet?
[remote "origin"]
url = git@github.com:abcd/main.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "rel-2011-07-07"]
remote = origin
merge = refs/heads/rel-2011-07-07
[branch "bucket-1"]
remote = origin
merge = refs/heads/bucket-1
[branch "bucket-2"]
remote = origin
merge = refs/heads/bucket-2
[branch]
autosetupmerge = true
[branch "bucket-3"]
remote = origin
merge = refs/heads/bucket-3
Ich sehe, dass die wahrscheinliche Lösung hier darin besteht, remote/merge
Einträge für Bucket-4 in meine Konfigurationsdatei einzufügen. Aber wie wird es ohne dies als "verfolgt" betrachtet? Bucket-4 wurde lokal erstellt und dann von diesem Repo auf den Server übertragen. Ich vermute also, dass ich das Tracking für diesen Zweig irgendwie nicht richtig eingerichtet habe.
Gibt es eine Konfiguration, die ich hinzufügen kann, damit alle lokalen Niederlassungen ihre Fernbedienungen in Zukunft ordnungsgemäß verfolgen können?