2015-03-11 20 views
97

Tôi có một dự án dưới quyền kiểm soát phiên bản Git mà tôi đã làm việc trên cả máy chủ và máy tính cục bộ của mình. Ban đầu tôi có nguồn gốc từ xa được đặt làm máy tính cục bộ của mình nhưng bây giờ tôi muốn thay đổi nó thành BitBucket.Từ xa bị từ chối (cập nhật cạn không được phép) sau khi thay đổi URL từ xa Git

Trên máy chủ tôi sử dụng lệnh

git remote set-url origin bitbucket_address 

Nhưng bây giờ khi tôi cố gắng đẩy dự án của tôi, tôi nhận được lỗi

! [remote rejected] master -> master (shallow update not allowed) 

gì gây ra điều này và làm thế nào để sửa chữa nó?

+1

Làm sao bạn sao chép phiên bản địa phương của bạn? 'git clone --depth'? –

+0

Nó đã được một thời gian trước đây và tôi không thể nhớ. Có cách nào để tìm ra? – rwolst

+1

Sẽ có một tệp có tên 'cạn' trong thư mục' .git' của bạn. –

Trả lời

186

Có vẻ như bạn đã sử dụng git clone --depth <number> để sao chép phiên bản cục bộ của mình. Điều này dẫn đến một bản sao nông. Một hạn chế của bản sao như vậy là bạn không thể đẩy nó từ một kho lưu trữ mới.

Điều này có nghĩa là bạn phải unshallow kho lưu trữ của mình. Để làm như vậy, bạn sẽ cần thêm lại từ xa cũ của mình.

git remote add old <path-to-old-remote> 

Sau đó chúng tôi sử dụng git fetch để lấy lịch sử còn lại từ cũ từ xa (như đề xuất trong this answer).

git fetch --unshallow old 

Và bây giờ bạn sẽ có thể đẩy vào kho lưu trữ từ xa mới của mình.


Note: Sau unshallowing bản sao của bạn, bạn rõ ràng là có thể loại bỏ cái cũ từ xa một lần nữa.

+22

nếu tôi nhân bản một dự án khởi động và tôi không muốn/cần toàn bộ lịch sử thì sao? có cách nào để tránh nó không? – itamar

+7

@itamar Đây có vẻ là một ví dụ điển hình cho một câu hỏi mới hoàn toàn hợp lệ. Bạn có thể liên kết đến câu hỏi này để tham khảo. –

+7

Được hỏi là câu hỏi mới http://stackoverflow.com/questions/29748197/how-to-clone-seed-kick-start-project-without-the-whole-history – itamar

8

Trong trường hợp repo của bạn là origin, và repo ban đầu là upstream:

git fetch --unshallow upstream 
Các vấn đề liên quan