2010-02-26 39 views
13

thể trùng lặp:
'git pull origin mybranch' leaves local mybranch N commits ahead of origin. Why?Git - "Chi nhánh của bạn ở phía trước 'origin/master' bằng 3 commit."

tôi nhận được thông tin này trong git

>git status 
# On branch master 
# Your branch is ahead of 'origin/master' by 3 commits. 
# 
nothing to commit (working directory clean) 

Và, khi tôi cố gắng để đẩy, tôi có được điều này:

fatal: failed to write object 
error: unpack failed: unpacker exited with error code 
To ssh:<my repository> 
! [remote rejected] master -> master (n/a (unpacker error)) 
error: failed to push some refs to 'ssh:<my repository>' 

Tôi đã googling này một chút, (ví dụ như có một câu hỏi stackoverflow về nó ở đây - 'git pull origin mybranch' leaves local mybranch N commits ahead of origin. Why?) và lời khuyên chung có vẻ là để làm một kéo sau đó đẩy. Nhưng điều này không làm việc cho tôi - một kéo nói với tôi tôi đang cập nhật. Tôi cũng đã thử 'git fetch origin' (không có gì). Tôi cũng đã thử:

> git remote show origin 
* remote origin 
    URL: ssh://<my repository> 
    HEAD branch: master 
    Remote branch: 
    master tracked 
    Local branch configured for 'git pull': 
    master merges with remote master 
    Local ref configured for 'git push': 
    master pushes to master (fast forwardable) 

Trường hợp giúp mọi người.

Tôi cũng đã thử thêm tệp giả trên máy chủ web của chúng tôi (cũng kiểm tra chính), cam kết và đẩy nó lên, sau đó kéo nó xuống cục bộ. Tất cả đều ổn. Nhưng tôi vẫn không thể đẩy. Bất cứ ai có thể cho tôi biết những gì tôi cần phải làm để giải quyết điều này? Tôi thậm chí không thực sự biết những gì nó có nghĩa là để nói rằng tôi đã nhanh chóng chuyển tiếp liên quan đến kho lưu trữ.

cổ vũ, tối đa

EDIT - cho ebneter và dan (nhờ)

> git config -l 
user.name=Max Williams 
push.default=tracking 
core.repositoryformatversion=0 
core.filemode=true 
core.bare=false 
core.logallrefupdates=true 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
remote.origin.url=ssh://<my repo url> 
branch.master.remote=origin 
branch.master.merge=refs/heads/master 

Một lấy màn hình của gitk là http://dl.dropbox.com/u/846812/gitk.png

  • tôi mới để git vì vậy tôi có thể 't giải thích điều này rất tốt, nhưng tôi tự hỏi nếu các cam kết thực hiện như là người chủ (dòng 6 trong phần trên cùng),' hợp nhất chi nhánh chủ ... 'có thể có những thứ cocked lên. Tôi không nhớ làm một cam kết như là người chủ, bối rối ...

Dan - Tôi nghĩ bạn nói đúng: lỗi tôi nhận được khi tôi cố gắng để đẩy là

error: unable to create temporary sha1 filename ./objects/05: File exists 

fatal: failed to write object 
error: unpack failed: unpacker exited with error code 

EDIT - đây nhận xét từ câu hỏi stackoverflow khác mà tôi đã đề cập trước đó đã thực sự khắc phục sự cố:

git remote alone (hiển thị đúng địa chỉ cho GitHub repo) không phải là đủ. Để tránh có thông báo cảnh báo "Nhánh của bạn trước" sau một lần kéo git, trước tiên bạn cần phải xác định tên từ xa cho một chi nhánh. Do đó đề nghị của tôi: gõ git config branch.master.remote yourGitHubRepo.git, sau đó thử một git pull và một trạng thái git và xem nếu vấn đề vẫn còn. - VonC ngày 16 tháng 11 tại 20:22

+2

Thử chạy 'gitk --all' để xem trực quan vị trí của bạn. – noah

+0

Lỗi bạn thường nhận được cho biết có điều gì đó sai trên điều khiển từ xa. Tuy nhiên, bạn dường như ngụ ý rằng bạn * có thể * đẩy từ máy chủ web của bạn. Có đúng không? Bạn có thể hiển thị toàn bộ nội dung của tập tin cấu hình (git config -l) không? – ebneter

+0

Có câu trả lời được cung cấp [tại đây] (http://stackoverflow.com/questions/1741143/git-git-pull-origin-mybranch-leaves-local-mybranch-n-commits-ahead-of-origin) – Surya

Trả lời

8

Có vẻ như vấn đề bạn đang gặp có liên quan đến "lỗi trình giải nén" được đề cập trên dòng "từ chối từ xa". Vì một số lý do, kết thúc từ xa không thể giải nén các đối tượng đã được gửi đến nó. Điều này có thể được gây ra bởi bất kỳ số lượng của sự vật.Một số điều bạn có thể thử:

git fsck --full 

Chạy cục bộ và tại điều khiển từ xa (nếu có thể).

git repack remotes/origin/master 

Chạy trên repo cục bộ.

Nếu không ai trong số đó khắc phục được sự cố, hãy thử googling git "unpacker error" để biết các ý tưởng khác. Cá nhân tôi chưa bao giờ gặp vấn đề này, vì vậy thật không may về tất cả những lời khuyên tôi có thể đưa ra.

Các vấn đề liên quan