2013-08-30 31 views
18

Sau đây là lệnh tôi sử dụng để kiểm tra một cam kết cụ thể.git sao chép và thanh toán trong một lệnh duy nhất

git clone git://repo.git/repo123 
git checkout <commitID> 

Tôi muốn thực hiện ở trên trong một bước - chỉ sử dụng lệnh git clone.

Lý do tại sao tôi muốn làm điều này là, repo123 rất lớn. Vì vậy, kiểm tra các cam kết tôi muốn sẽ giúp tôi tiết kiệm rất nhiều thời gian.

Tôi biết tùy chọn --depth. Nhưng trong trường hợp này, nó là không sử dụng. bất cứ ai có thể cho tôi biết làm thế nào để làm điều đó?

+0

Vấn đề của '--depth' là gì? – michas

Trả lời

2

Tôi đã chạy vào một tình huống tương tự và nó hoạt động tốt với Lệnh Git Clone với --depth. Và chỉ định tên chi nhánh/cam kết/Tên thẻ ở cuối lệnh với thông số -b.

Cú pháp:

git clone --depth 1 github.com:ORG-NAME/Repo.git -b <Branch-Name/Commit-Number/TAG> 
+2

Điều này thực sự làm việc cho một SHA1 cam kết? Tôi đã thử nó với git 2.5.0 và mặc dù nó chấp nhận tên chi nhánh và thẻ, nó không hoạt động với các cam kết. – meowsqueak

2

là vấn đề của bạn thanh toán là để lớn hoặc kho bản thân? Như git clone, tốt, nhân bản một kho lưu trữ, bạn thường nhận được toàn bộ kho lưu trữ ở kích thước đầy đủ của nó. (. Trừ khi bạn đang làm một bản sao cạn như bạn đã gợi ý)

Nếu nó thực sự về thanh toán của chi nhánh sai git help clone nói:

--no-checkout, -n 
     No checkout of HEAD is performed after the clone is complete. 

Sau khi nhân bản với -n bạn có thể tự kiểm tra

21
git clone u://r/l --branch x 

vẫn sao chép mọi thứ nhưng đặt HEAD địa phương cho chi nhánh đó để nó được kiểm tra.

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