2013-06-29 39 views
22

Tôi đang cố gắng lấy từ kho lưu trữ trong Github. Nhưng tôi không muốn nhân bản nhánh chủ. Tôi muốn sao chép một số chi nhánh khác. Khi tôi thử git clone <url>, tôi lấy các tệp từ nhánh chính. Tôi nên làm gì?Sao chép từ một chi nhánh không phải là chủ

Ngoài ra, giả sử mã được cập nhật trong kho lưu trữ và tôi muốn nhận mã mới nhất, tôi có nên sử dụng lại git clone không? Bởi vì kích thước của dự án là rất lớn. Ngoài ra nếu tôi thực hiện thay đổi cho dự án tại địa phương, và sau đó tôi lại sử dụng git clone, liệu những thay đổi tôi đã thực hiện vẫn còn đó? Nếu tôi không muốn thay đổi ở đó thì sao?

Tôi thậm chí không chắc chắn nếu git clone là đúng lệnh. git pull hoặc git fetch?

Tôi xin lỗi, tôi rất mới với git.

Trả lời

28

Hãy thử điều này:

git init 
git fetch url-to-repo branchname:refs/remotes/origin/branchname 

EDIT

Một giải pháp tốt hơn:

git clone -b mybranch --single-branch git://sub.domain.com/repo.git 
+0

Tôi không nhận được phần sau url-to-repo. Tôi có nên đề cập đến tên chi nhánh không? Ví dụ, git tìm nạp demo (giả sử dev là tên chi nhánh?) – user2510555

+0

Tôi đã thay đổi giải pháp sạch hơn – Aguardientico

+0

BTW cho giải pháp đầu tiên: nơi nó nói "branchname" cần nói nhánh mà bạn muốn sao chép một cái gì đó như 'git fetch my_repo_url demo: refs/remotes/origin/demo' – Aguardientico

2

sử dụng git clone --branch <name> có thể thêm --single-branch

như bình thường bạn có git clone --help để đọc chi tiết về các lệnh

14
git clone <url> 

sao chép và tạo chi nhánh theo dõi từ xa cho từng chi nhánh. Nếu bạn muốn xem các chi nhánh có sẵn (sau khi nhân bản), bạn gõ

git branch -l 

Để chuyển sang một chi nhánh đặc biệt sau khi nhân bản bạn cần làm:

git checkout <branchname> 

nơi BRANCHNAME là tên của các chi nhánh :)

Nếu bạn muốn sao chép và kiểm một chi nhánh cụ thể mà bạn làm

git clone -b <branchname> <url> 

Các lệnh khác mà bạn đề cập là "cập nhật" bản sao làm việc hiện tại của bạn. git pull nhận tất cả thay đổi từ kho lưu trữ từ xa và hợp nhất chúng trong khi git fetch chỉ nhận chúng thay đổi mà không cần hợp nhất.

+2

'git clone -b ', phải không? – user2510555

+0

Thực ra tôi nghĩ đó là 'git clone -b ' – kamjagin

+0

OK, cảm ơn. Tôi sẽ cố gắng này ngay bây giờ. – user2510555

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