TL; DR: Saya memiliki cabang "terlacak" yang tidak dapat saya tarik.
Jadi, inilah saya di "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
Saya ingin menarik perubahan dari kendali jarak jauh saya:
$ 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, aneh, saya pikir saya sudah menambahkan "bucket-4" sebagai cabang pelacakan. Ayo lihat:
$ 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)
Memang, bucket-4 ditandai sebagai "dilacak", namun entah bagaimana itu dikonfigurasikan untuk push, tetapi tidak ditarik.
Melihat .git/config
file saya , saya melihat bahwa saya memiliki entri "jarak jauh" dan "menggabungkan" untuk sebagian besar cabang saya, tetapi tidak untuk bucket-4. Bagaimana itu bahkan dianggap "dilacak" tanpa ini?
[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
Saya melihat bahwa kemungkinan solusi di sini adalah menambahkan remote/merge
entri untuk bucket-4 di file konfigurasi saya. Tetapi bagaimana itu dianggap "dilacak" tanpa ini? bucket-4 dibuat secara lokal, lalu didorong ke server dari repo ini, jadi saya curiga bahwa entah bagaimana saya tidak mengatur pelacakan dengan benar untuk cabang ini.
Apakah ada beberapa konfigurasi yang dapat saya tambahkan untuk membuat semua cabang lokal melacak remote mereka dengan benar di masa depan?