2010-01-19 32 views
16

Vì vậy, tôi có kho lưu trữ git mà tôi đã kéo tại một điểm và kho lưu trữ đó nằm trên máy chủ. Tôi không có quyền truy cập vào kho lưu trữ ban đầu mà tôi đã kéo nó từ đó. Làm cách nào để lấy mã từ máy chủ hiện tại sang máy tính khác?Kho Git từ máy này sang máy khác

EDIT 1: Vì vậy, đây là những gì nó trông giống như:

  • MÁY TÍNH A: Các kho git mà tôi ban đầu kiểm tra ra từ. Tôi không có quyền truy cập này nữa.
  • MÁY TÍNH B: Máy chủ dùng chung mà tôi đã kiểm tra mã.
  • MÁY TÍNH C: Máy tính xách tay cục bộ.

Tôi có thể làm một bản sao đơn giản của thư mục đó mà không sử dụng git hay tôi có thể sử dụng git để sao chép nếu từ B đến C?

+0

Wow - chỉ cần tìm kiếm tại câu hỏi này - vui nhộn! –

Trả lời

5

Bạn có thể kéo từ vị trí mạng hay sao chép toàn bộ thư mục (thư mục chứa .git trang) trên máy tính khác.

3

Bạn chỉ có thể sao chép nó từ máy chủ, giả sử bạn có quyền truy cập vào nơi clone được lưu trữ - sức mạnh của phân phối;)

+0

Tôi không chắc tôi có quyền truy cập vào nơi bản sao được lưu trữ hay không. Không chắc chắn làm thế nào tôi kéo bộ mã ban đầu hoặc. –

+0

Tôi nghĩ rằng Matt có nghĩa là để sao chép nó từ compuer B ("máy chủ hiện có") vào máy tính C ("máy tính khác"). Máy tính A là máy tính bạn không có quyền truy cập nữa. git clone entry trong hướng dẫn sử dụng: http://www.kernel.org/pub/software/scm/git/docs/git-clone.html –

+0

Bạn có bản sao trên máy tính của bạn cục bộ không? Bạn có thể sao chép từ đó chỉ giống nhau; các kho chứa tất cả các thông tin tương tự, modulo bất kỳ thay đổi nào kể từ lần cuối bạn kéo. –

0

Bạn có nghĩa là bạn muốn bản sao nó vào một máy tính khác nhau?

Làm thế nào về:

git clone ssh://myserver/path/to/myproject.git 
-2

Nếu tôi hiểu câu hỏi đúng, bạn chỉ muốn chuyển lịch sử mã từ B sang C. Thực tế vì git sử dụng mô hình trung tâm, B có lịch sử hoàn chỉnh mã cho đến điểm đồng bộ cuối cùng giữa B và A .

tôi có thể nghĩ về ba phương pháp nếu bạn chỉ muốn chuyển lịch sử mã từ B đến C:

  • sao chép trực tiếp/rsync/etc. chỉ cần sao chép tất cả các tệp và cấu trúc trong \ B-machine \ code.git thành \ C
  • git clone: ​​đây là lựa chọn tốt nhất nếu C có thể truy cập B qua http hoặc ssh
  • git bundle: git hỗ trợ lệnh bó và sau bó, bạn sao chép/rsync/ftp/scp bó file vào C
2

bạn có thể chạy từ máy tính của C:

git clone [email protected]_B:path/to/root/of/repository 

giả định rằng máy tính B có một máy chủ ssh chạy. Nếu không, các giao thức khác được hỗ trợ (tệp: //, http: //, \\ computer_B (NetBios), ...)

31

Điều này đạt được bằng cách tạo bản sao của kho lưu trữ trên COMPUTER B, bằng cách chạy lệnh git clone trên MÁY TÍNH C, nơi bạn muốn tạo kho lưu trữ nhân bản. Nhân bản trong git có thể được thực hiện bằng nhiều giao thức, bao gồm ssh, https, git; và những yêu cầu này cần thiết lập thích hợp cho lệnh git clone để thành công.

Phương pháp đơn giản nhất là để bắt đầu máy chủ git trên MÁY TÍNH B sử dụng lệnh này:

> git daemon 

Để được trợ giúp với lệnh trên, chạy git help daemon

Sau đó đặt một tập tin đánh dấu trong thư mục .git của kho lưu trữ trên COMPUTER B để cấp quyền cho máy chủ git để chạy lệnh clone trên kho lưu trữ đó. Này được thực hiện bằng cách:

> cd <repository root>/.git 
> touch git-daemon-export-ok 

Bây giờ, từ một thiết bị đầu cuối trên MÁY TÍNH C, chạy các lệnh sau:

> cd <folder in which to create the cloned repository> 
> git clone git://<ip address of COMPUTER B>/<full path of the repository on COMPUTER B> 

Điều này sẽ tạo ra các kho nhân bản trên máy tính C.

+0

Nó cho lỗi: truy cập bị từ chối hoặc kho lưu trữ không được xuất. –

+0

Tôi nhận được 'kết nối từ chối' làm thế nào tôi có thể thiết lập pit pemission trong repo git? –

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