2011-11-02 56 views
63

Khi tôi cố gắng và đẩy một sự thay đổi tôi đã cam kết, tôi nhận được lỗi sau ...Git lỗi khi cố gắng chuyển - pre-nhận móc giảm

git.exe push -v --progress "origin" iteration1:iteration1 

remote: ********************************************************************* 
To ssh://[email protected]/cit_pplus.git 
! [remote rejected] iteration1 -> iteration1 (pre-receive hook declined) 
error: failed to push some refs to 'ssh://[email protected]/cit_pplus.git' 

gì đang xảy ra?

+7

Có gì trong mycogit hookon được nhận trước? –

+0

Bạn sẽ không cố đẩy các tệp lớn vào github được không? –

+0

FYI: hôm nay tất cả đồng nghiệp của tôi đều bị lỗi này, cuối cùng chúng tôi quyết định khởi động lại máy chủ stash của mình và nó đã được sửa chữa một cách kỳ diệu. Chúng tôi không biết vấn đề thực sự là gì. –

Trả lời

46

Bạn nên hỏi bất cứ ai duy trì repo tại [email protected]/cit_pplus.git.

Cam kết của bạn bị từ chối bởi pre-receive hook của repo đó (đó là tập lệnh có thể định cấu hình người dùng nhằm phân tích các cam kết đến và quyết định xem chúng có đủ tốt để được chấp nhận vào repo) hay không.

Bạn cũng nên hỏi người đó cập nhật móc, vì vậy nó sẽ in ra lý do từ chối.

Nếu người bảo trì là chính bạn, thì có vẻ như bạn đã gặp sự cố với thiết lập của mình ở phía máy chủ. Xin vui lòng chia sẻ thêm thông tin sau đó.

+0

Trong trường hợp của tôi, BitBucket đã xác thực nội dung thư cam kết, đối mặt với nó bằng vé JIRA, ngoại tuyến tại thời điểm đó. –

+1

vì vậy khi nó trở thành trực tuyến cố định của nó? – shareef

+0

Và điều gì sẽ xảy ra nếu repo ở tại Heroku ??? –

42

Tôi muốn đặt cược rằng bạn đang thử push không tiến nhanh và móc sẽ chặn nó. Nếu đúng như vậy, chỉ cần chạy git pull --rebase trước khi đẩy để rebase các thay đổi cục bộ của bạn trên codebase mới nhất.

5

này có thể gây ra mà bạn did't có quyền để đẩy cam kết đối với một số ngành, như tổng thể, bạn có thể yêu cầu nhà duy trì cho bạn quyền để đẩy

+0

Tôi nghĩ rằng điều này là chính xác, nhưng những gì thú vị là VS dường như đang cố gắng để đẩy đến chi nhánh phụ huynh không phải là tên chi nhánh thực tế để điều khiển từ xa. Vì vậy, nếu các chi nhánh cha mẹ được bảo vệ này dường như xảy ra nhưng có vẻ không được anyway để sửa lỗi này trong VS và bạn phải chuyển sang dòng cmd. – Mark

4

Tôi có vấn đề này khi cố gắng kết hợp những thay đổi với kích thước tệp lớn hơn kho lưu trữ từ xa được phép (trong trường hợp của tôi là GitHub)

+2

Trong trường hợp của tôi ngay cả sau khi xóa các tập tin GitHub vẫn phàn nàn ... nhưng câu trả lời này đã làm các trick https://stackoverflow.com/questions/19573031/cant-push-to-github-because-of-large-file-which -i-already-deleted – CodenameDuchess

17

Kích thước tệp là quan trọng. Có giới hạn ~ 120MB cho một tệp. Trong trường hợp của tôi, .gitignore sử dụng Visual Studio có tệp được liệt kê, nhưng tệp vẫn được cam kết. Khi sử dụng git cli, chúng tôi có thể nhận được thông tin chi tiết hơn về lỗi.

móc nhận trước bị từ chối là kết quả của tệp lớn. Về cơ bản xác thực đẩy.

Để giải quyết nó, tôi lấy ra cam kết cuối cùng sử dụng:

git reset --soft HEAD~1 

sau đó tôi loại trừ các tập tin từ các cam kết.

hy vọng điều đó sẽ hữu ích.

+0

Điều này đã giúp cho vấn đề của tôi là một tệp kết xuất SQL không mong muốn (kích thước tệp 155mb) đã bị đẩy (do tai nạn). –

+0

Giới hạn kích thước tệp tùy thuộc vào nhà cung cấp dịch vụ lưu trữ của bạn. GitHub có một giới hạn ở khoảng kích thước đó, cho những người khác nó thay đổi, và tự lưu trữ git tự nhiên không có giới hạn như vậy. – 1615903

1

Tôi nhận được thông báo này khi máy chủ GitLab đang trải qua một số thay đổi. Ngày hôm sau đẩy làm việc tốt. Dù sao, như những người khác chỉ ra, kiểm tra với người bảo trì của bạn để chắc chắn.

2

Trong trường hợp của tôi, tôi nhận được thông báo này vì chi nhánh được đánh dấu là 'Được bảo vệ' trong GitLab.

0

Tôi nhận được thông báo này khi cố gắng chuyển sang phiên bản dokku. Hóa ra đĩa đã đầy trên máy chủ của tôi.

Ran: du -f

Và kết quả là:

Filesystem  Size Used Avail Use% Mounted on 
udev   476M  0 476M 0% /dev 
tmpfs   100M 4.4M 95M 5% /run 
/dev/xvda1  7.8G 7.4G 8.9M 100%/
0

Trong trường hợp của tôi, chúng tôi có móc cho bài viết cam kết, kịch bản máy chủ của chúng tôi chấp nhận cam kết nếu họ có định dạng đặc biệt cho cam kết thông báo "<JIRA ID><Message>".Nó (móc) từ chối cam kết nếu vé Jira tương ứng không tồn tại hoặc có một số ký hiệu đặc biệt trong thông điệp cam kết. Tôi phải đối mặt với lỗi này khi tôi thêm /, [,> v.v. trong một thông điệp cam kết, loại bỏ những hoạt động tốt.

+0

Câu trả lời này có vẻ không hữu ích, vì áp phích gốc (và bất kỳ ai khác truy cập trong tương lai) sẽ có một tập lệnh khác được định cấu hình làm móc trước khi nhận. – aronisstav

0

Điều này thực sự xảy ra khi YACC được bật ở phía máy chủ trong BitBucket. YACC được kích hoạt cho các tên vấn đề JIRA được đề cập trong thông điệp cam kết. Vì vậy, bất cứ khi nào bạn cam kết bất cứ điều gì atleast giữ số JIRA của bạn vào tin nhắn cam kết và sau đó bổ sung bạn có thể thêm tin nhắn của riêng bạn.

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