2009-09-16 44 views
12

Tôi được sử dụng để kéo từ kho lưu trữ git của ai đó. Hôm nay anh ta chuyển kho của mình đến một địa chỉ khác. Tôi tự hỏi nếu có một số cách để tôi kéo từ địa chỉ mới và để có được những thông tin về những thay đổi ông đã thực hiện đối với thời gian qua trước khi di chuyển của mình?git khi thay đổi kho lưu trữ

Điều tôi đã làm là "git clone newaddress" trong kho lưu trữ của tôi được lấy từ kho cũ của mình. Đầu ra là như sau:

có xxx

đi bộ xxx

có xxx

có xxx

đi bộ xxx

Bắt khuyết danh sách cho newaddress

Lấy danh sách gói cho newaddress

Bắt chỉ mục cho gói xxx

Bắt gói xxx

chứa xxx

có xxx

có xxx

đi bộ xxx

...

Sau đó, tôi "git pull" và nhận được thông báo sau mà tôi không hiểu:

Bạn hỏi tôi để kéo mà không nói cho tôi biết đó là chi nhánh bạn muốn kết hợp với, và 'chi nhánh .master.merge 'trong tệp cấu hình của bạn cũng không cho tôi biết. Vui lòng tên chi nhánh bạn muốn hợp nhất trên dòng lệnh và thử lại (ví dụ: 'git pull'). Xem git-pull (1) để biết chi tiết về refspec.

Nếu bạn thường xuyên kết hợp với các chi nhánh cùng, bạn có thể muốn cấu hình các biến sau đây trong tập tin cấu hình của bạn:

branch.master.remote = <nickname> 
branch.master.merge = <remote-ref> 
remote.<nickname>.url = <url> 
remote.<nickname>.fetch = <refspec> 

Xem git-config (1) để biết chi tiết.

Tôi có thể làm gì bây giờ để có thể nhận được thông tin về những thay đổi mà anh đã thực hiện so với lần trước khi di chuyển?

Cảm ơn và kính trọng!

Trả lời

23

Nếu tôi hiểu câu hỏi của bạn một cách chính xác, những gì bạn đang tìm kiếm để làm là thay thế nguồn gốc từ xa hiện tại của bạn với một hình mới. Tôi không biết nếu bạn có thể thay thế nó từ dòng lệnh, nhưng bạn có thể thay đổi nó trong .git/config của bạn (đây là trong thư mục dự án của bạn)

OLD

[remote "origin"] 
    url = git+ssh://original_repository.com/my_project.git 
    ... 

MỚI

[remote "origin"] 
    url = git+ssh://new_repository.com/my_project.git 
    ... 

Phần git+ssh có thể là một cái gì đó như [email protected] (đây là những gì nó sẽ được nếu bạn đang sử dụng github), hoặc tôi chắc chắn một loạt các thứ khác. Điều này có thể giúp làm sáng tỏ một số điều mà tôi đã bỏ qua hoặc không giải thích đủ rõ ràng: Changing Your Origin.

Hy vọng điều này sẽ giúp trả lời câu hỏi của bạn. Chúc mừng.

+0

Để nhanh chóng ref: ----------------------------- git remote set-url origin https://github.com/user/ repo2.git ----------------------------------------- http: // stackoverflow. com/questions/2432764/how-to-change-a-remote-kho-uri-sử dụng-git –

1

Run này trong kho git nhân bản của bạn:

git config branch.master.remote origin 

để chăm sóc "Bạn hỏi tôi để kéo mà không nói với tôi" ... tin nhắn.

Sau đó, nếu bạn biết nơi repo từ xa đã được di chuyển, bạn có thể làm trong repo cục bộ nhân bản mới của bạn một git diff kể từ ngày đó.

$ git diff "@{yesterday}" 
$ git whatchanged --since="2 weeks ago" 

Lưu ý: sắp tới git1.6.5 mentions

Nhân dạng ngày ghi để tùy chọn khác nhau, ví dụ "--since=yesterday", "[email protected]{2000.09.17}", được dạy để suy ra một số đầu vào bị bỏ qua đúng cách.

cũng Xem câu hỏi SO "How do you get git to always pull from a specific branch?"

+0

Cảm ơn! Tôi chỉ nhận ra rằng tôi đã làm điều gì đó khủng khiếp sai ở đây. Tôi đã nhân bản kho lưu trữ mới của mình ngay dưới thư mục của kho lưu trữ của riêng tôi, có nghĩa là một bản sao của kho lưu trữ mới của anh ấy xuất hiện dưới dạng thư mục con của thư mục riêng của tôi, một bản sao kho lưu trữ cũ của anh ta. Vì vậy, tôi chỉ cần loại bỏ toàn bộ thư mục con. Bây giờ nếu tôi làm một "git clone newaddress" dưới thư mục mẹ của kho lưu trữ của tôi, tôi sẽ nhận được "fatal: destination directory 'vision_test' đã tồn tại." Vì vậy, bây giờ là cách chính xác để thay đổi địa chỉ của kho lưu trữ của mình trong một của riêng tôi vì vậy tôi chỉ có thể sử dụng "git kéo" trong tương lai? Cảm ơn và kính trọng! – Tim

+0

Trong git 1.7.7.5, tôi đã có "Bạn yêu cầu tôi kéo mà không nói cho tôi biết nhánh nào bạn ..." sau khi gọi 'git remote rm origin' và' git remote add origin git @ fluff: /git/dist.git '. Nhưng tôi phải gọi như sau 3: 1) 'git config --remove-section branch.master' 2)' git config branch.master.remote origin' 3) 'git config branch.master.merge refs/head/master' để thoát khỏi cảnh báo và không có hai [branch "master"] trong ./git/config. – mmorris

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