TL; DR: Tôi có một nhánh "được theo dõi" mà tôi không thể kéo.
Vì vậy, ở đây tôi đang ở trong "xô-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
Tôi muốn lấy các thay đổi từ xa của mình:
$ 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, lẻ, tôi nghĩ rằng tôi đã thêm "xô-4" làm nhánh theo dõi. Hãy xem nào:
$ 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)
Thật vậy, xô-4 được đánh dấu là "được theo dõi", nhưng bằng cách nào đó, nó được cấu hình để đẩy, nhưng không kéo.
Nhìn vào .git/config
tệp của tôi , tôi thấy rằng tôi có các mục "từ xa" và "hợp nhất" cho hầu hết các chi nhánh của mình, nhưng không phải cho nhóm 4. Làm thế nào nó thậm chí được coi là "theo dõi" mà không có điều này?
[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
Tôi thấy rằng giải pháp có khả năng ở đây là thêm remote/merge
các mục cho xô-4 trong tệp cấu hình của tôi. Nhưng làm thế nào nó được coi là "theo dõi" mà không có điều này? xô-4 được tạo cục bộ, sau đó được đẩy đến máy chủ từ repo này, vì vậy tôi nghi ngờ rằng bằng cách nào đó tôi đã không thiết lập theo dõi đúng cách cho chi nhánh này.
Có một số cấu hình tôi có thể thêm vào để làm cho tất cả các chi nhánh địa phương theo dõi điều khiển từ xa của họ đúng cách trong tương lai không?