Lệnh git clone –single-branch –branch sao chép một nhánh cụ thể. Lệnh này cho phép bạn sao chép nội dung của kho lưu trữ mà không cần tải xuống tất cả các nhánh trên kho lưu trữ. Sẽ rất hữu ích nếu một kho lưu trữ lớn và bạn chỉ muốn tải xuống mã mà bạn sẽ sử dụng.
Theo mặc định, lệnh git clone sao chép tất cả các nhánh từ kho lưu trữ Git. Để chỉ sao chép một nhánh cụ thể, bạn phải sử dụng cờ –single-branch với lệnh git commit.
Trong hướng dẫn này, chúng tôi thảo luận về cách sao chép một nhánh cụ thể bằng Git bằng lệnh git clone. Chúng tôi xem qua một ví dụ để giúp bạn củng cố kiến thức của mình.
Nhân bản là gì?
Nhân bản cho phép bạn lưu một bản sao của một kho lưu trữ được lưu trữ ở nơi khác vào máy cục bộ của bạn. Bạn có thể sao chép kho lưu trữ bằng lệnh git clone.
Lệnh git clone có nghĩa là máy chủ điều khiển phiên bản Git không cần cung cấp giao diện web. Bạn có thể tải xuống bản sao của kho lưu trữ Git từ dòng lệnh.
Sao chép một nhánh cụ thể là một cách phổ biến để giảm tác động của một kho lưu trữ lên không gian đĩa có sẵn của bạn. Điều này là do bạn sẽ không sao chép tất cả các nhánh trong dự án. Bạn luôn có thể tải xuống một nhánh sau nếu bạn phát hiện ra mình cần một nhánh mà bạn chưa tải xuống.
Git sao chép một nhánh cụ thể
Lệnh git clone –single-branch –branch sao chép một nhánh cụ thể từ kho lưu trữ Git. Chỉ định tên của nhánh bạn muốn sao chép sau lệnh –branch. Bạn luôn có thể tải xuống bất kỳ nhánh nào khác mà bạn cần sau khi bạn đã nhân bản kho lưu trữ.
Bạn có thể giới hạn các nhánh mà lệnh sao chép truy xuất bằng cách sử dụng tùy chọn –single-branch:
81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.
Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.
git clone --single-branch --branch <branch-name> <url>
Git sao chép một nhánh cụ thể:Ví dụ
Chúng tôi có một kho lưu trữ được gọi là ck-git. Kho này có hai nhánh:master và dev. Chúng tôi chỉ muốn truy xuất nhánh chính vì chúng tôi không có kế hoạch làm việc với nhánh nhà phát triển.
Để chỉ truy xuất nhánh chính, chúng tôi sẽ sử dụng tùy chọn –single-branch với lệnh git clone:
git clone --single-branch --branch master https://github.com/career-karma-tutorials/ck-git
Sau cờ –single-branch, chúng ta đã chỉ định một giá trị cho cờ –branch. Đây là nơi chúng tôi cho Git biết nhánh nào cần sao chép. Tiếp theo, chúng tôi chỉ định URL của kho lưu trữ mà chúng tôi muốn sao chép, giống như chúng tôi làm với bất kỳ lệnh git clone nào.
Hãy xem điều gì sẽ xảy ra khi chúng tôi chạy lệnh của mình:
Cloning into 'ck-git'... remote: Enumerating objects: 37, done. ... Unpacking objects: 100% (37/37), done.
Lệnh git clone đã sao chép kho lưu trữ ck-git vào máy cục bộ của chúng tôi. Lệnh chỉ sao chép nhánh “chính” vì chúng tôi đã sử dụng cờ –single-branch.
Chúng tôi có thể xác minh rằng chỉ nhánh "chính" đã được sao chép bằng cách điều hướng vào thư mục dự án mới của chúng tôi và thực hiện lệnh git branch:
cd ck-git/ git branch
Lệnh git branch liệt kê tất cả các branch mà chúng ta đã lưu trữ cục bộ trong kho lưu trữ của mình:
* master
Chỉ có một nhánh đã được nhân bản. Đây là nhánh chính.
Bạn phải chỉ định cờ –single-branch nếu bạn muốn sao chép một nhánh duy nhất. Riêng cờ –branch chỉ định nhánh bạn muốn kiểm tra khi điều hướng vào kho lưu trữ. Hoạt động sao chép chỉ với cờ –branch vẫn tìm nạp tất cả các nhánh trong một kho lưu trữ.
Cờ –single-branch được hỗ trợ từ Git phiên bản 1.7.10 và các phiên bản trong tương lai.
Tìm nạp một chi nhánh từ xa
Bởi vì chúng tôi chỉ tải xuống một nhánh, chúng tôi không thể thấy mã trên các nhánh khác trong dự án của chúng tôi.
Chúng tôi vừa nhận ra rằng chúng tôi cũng cần một bản sao của nhánh “dev”. Đây không phải là vấn đề vì chúng tôi có thể tìm nạp các nhánh từ xa sau khi sao chép ban đầu kho lưu trữ của chúng tôi. Chúng ta có thể truy xuất nhánh “dev” bằng lệnh git checkout:
git checkout --track origin/dev
Lệnh này sẽ truy xuất nhánh nhà phát triển trên “origin” của chúng ta. “Nguồn gốc” đề cập đến kho lưu trữ từ xa mà kho lưu trữ của chúng tôi được liên kết với.
Nhánh "dev" sẽ được lưu vào một nhánh cục bộ. Sau đó, Git HEAD của chúng tôi sẽ thay đổi thành nhánh "dev". Điều này có nghĩa là chúng tôi sẽ chuyển từ việc xem bất kỳ nhánh nào chúng tôi đã tham gia sang nhánh "nhà phát triển".
Kết luận
Bạn có thể sao chép một nhánh cụ thể từ kho lưu trữ Git bằng cách sử dụng lệnh git clone –single-branch –branch. Lệnh này truy xuất tất cả các tệp và siêu dữ liệu được liên kết với một nhánh. Để truy xuất các nhánh khác, bạn sẽ cần phải tìm nạp chúng sau này.
Bạn có muốn tìm hiểu thêm về Git? Hãy xem hướng dẫn Cách học Git của chúng tôi. Trong hướng dẫn này, bạn sẽ tìm thấy danh sách các tài nguyên, khóa học và sách trực tuyến hàng đầu. Bạn cũng sẽ tìm thấy lời khuyên của chuyên gia về cách có thể từ người dùng Git mới bắt đầu trở thành chuyên gia.