Lệnh git clone tạo bản sao của kho lưu trữ từ xa trên máy cục bộ của bạn. Theo mặc định, lệnh sao chép lưu mã của bạn trong một thư mục có chung tên kho lưu trữ của bạn. Điều này có thể được ghi đè bằng cách chỉ định tên thư mục sau URL của kho lưu trữ bạn muốn sao chép.
Tạo bản sao cục bộ của kho lưu trữ Git được lưu trữ ở nơi khác là một phần trung tâm của hệ thống kiểm soát phiên bản Git.
Lệnh git clone cho phép bạn tạo bản sao cục bộ của kho lưu trữ được lưu trữ ở nơi khác. Bản sao này còn được gọi là “bản sao”.
Trong hướng dẫn này, chúng ta sẽ khám phá những điều cơ bản về lệnh git clone. Chúng ta sẽ thảo luận về cách sao chép kho lưu trữ cục bộ và từ xa cũng như cách sao chép kho lưu trữ trống.
Lệnh git clone là gì?
Lệnh git clone tạo bản sao của kho lưu trữ hiện có vào thư mục đang hoạt động trên máy tính cục bộ của bạn.
Nhân bản là một tính năng trung tâm của Git. Điều này là do nhân bản cho phép bạn tạo một bản sao mã của mình độc lập với phiên bản chính. Bạn có thể chạy bản sao này và thao tác mã trên máy cục bộ của mình mà không ảnh hưởng đến mã trong phiên bản chính của bạn.
Điều này có nghĩa là bạn không phải thực hiện các thay đổi đối với kho lưu trữ cho đến khi bạn sẵn sàng làm như vậy. Sau khi thực hiện bất kỳ thay đổi nào, bạn có thể đẩy mã vào kho lưu trữ từ xa để lưu trữ. Hoặc, bạn có thể tạo một yêu cầu kéo để người khác có thể xem lại mã bạn đã viết.
Có hai cách bạn có thể thiết lập kho lưu trữ bằng Git. Bạn có thể sao chép một kho lưu trữ hiện có bằng cách sử dụng lệnh git clone hoặc bạn có thể sử dụng lệnh git init để tạo một kho lưu trữ mới.
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ọ.
Sao chép một kho lưu trữ thường là một hành động một lần. Sau khi nhân bản kho lưu trữ, bạn sẽ có tất cả mã bạn cần trên máy cục bộ của mình để làm việc với kho lưu trữ Git.
Lệnh git clone sao chép tất cả siêu dữ liệu được liên kết với một kho lưu trữ. Khi bạn đã nhân bản một kho lưu trữ, bạn sẽ có một bản ghi về toàn bộ lịch sử của dự án. Lệnh clone cũng sao chép tất cả các nhánh Git được liên kết với một dự án.
Cách sử dụng Git Clone
Lệnh git clone tạo bản sao của kho lưu trữ hiện có trong thư mục mới trên máy cục bộ của bạn. Khi bạn sao chép một kho lưu trữ vào máy cục bộ của mình, một môi trường mới sẽ được tạo để lưu trữ mã cho kho lưu trữ đó.
Hãy xem qua một ví dụ về cách sử dụng lệnh git clone để sao chép một kho lưu trữ. Giả sử chúng ta đang tìm cách sao chép một kho lưu trữ từ GitHub sang máy cục bộ của mình.
Chúng tôi có thể sử dụng thao tác dòng lệnh sau để sao chép dự án của mình:
git clone https://github.com/username/project-name.git cd project-name
Trong mã của chúng tôi, lệnh đầu tiên tạo một kho lưu trữ Git mới dựa trên một kho lưu trữ được lưu trữ tại URL GitHub mà chúng tôi đã chỉ định. Tên của thư mục mà mã của chúng tôi xuất hiện bằng tên của kho lưu trữ. Trong trường hợp này, Git tạo một thư mục có tên là tên dự án.
Sau đó, chúng tôi sử dụng lệnh cd để chuyển vào kho lưu trữ Git mới của chúng tôi. Bây giờ chúng tôi đang xem kho lưu trữ mới của mình, chúng tôi có thể bắt đầu xem và chỉnh sửa các tệp của mình.
Hoạt động sao chép tùy chỉnh
Lệnh git clone chấp nhận một vài tham số. Bạn có thể sử dụng các tham số này để thực hiện các hoạt động sao chép tùy chỉnh. Hãy khám phá một ví dụ về các hoạt động tùy chỉnh chính mà bạn có thể muốn biết khi làm việc với git clone.
Sao chép vào một thư mục
Theo mặc định, một thư mục được tạo có cùng tên với kho lưu trữ mà chúng tôi đã nhân bản. Trong ví dụ đầu tiên của chúng tôi, chúng tôi đã nhân bản một kho lưu trữ mà không chỉ định tên thư mục. Bản sao kết quả của kho lưu trữ của chúng tôi được gọi là ck-git. Điều này là do chúng tôi không nêu tên thư mục.
Tuy nhiên, khi bạn đang sao chép một kho lưu trữ, bạn có thể muốn sao chép nó vào một thư mục cụ thể. Bạn có thể làm như vậy bằng cách chỉ định tên thư mục mà trong đó kho lưu trữ Git sẽ được sao chép.
Chúng ta có thể chạy lệnh git clone với đối số thứ hai như sau:
git clone <repo> <folder>
Giả sử chúng ta muốn sao chép nội dung của một kho lưu trữ Git giả định vào một thư mục có tên là “dự án của tôi”. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
git clone https://github.com/username/project-name.git my-project cd my-project
Đầu tiên, mã của chúng tôi sao chép kho lưu trữ GitHub mà chúng tôi đã tham khảo. Trong ví dụ của chúng tôi, chúng tôi chỉ định tên thư mục, “my-project”, đây là nơi mã cho repo của chúng tôi sẽ được sao chép. Sau đó, chúng tôi sử dụng cd để chuyển vào thư mục my-project mà lệnh git clone đã tạo.
Tạo một bản sao nông
Theo mặc định, khi bạn sao chép một kho lưu trữ, lịch sử của kho lưu trữ đó cũng sẽ được nhân bản. Nếu dự án của bạn có hàng trăm cam kết, thì sẽ mất nhiều thời gian hơn để tạo bản sao cục bộ.
Để bỏ qua việc sao chép toàn bộ kho lưu trữ, bạn có thể tạo một bản sao nông. Bản sao nông chỉ sao chép lịch sử của các cam kết được chỉ định bởi tham số "độ sâu" được sử dụng để tạo bản sao nông.
Cú pháp để tạo một bản sao nông như sau:
git clone -depth=1 <repo>
Giá trị của thông số "độ sâu" đề cập đến số lần cam kết lịch sử mà bạn muốn sao chép. Trong trường hợp này, chúng tôi đã chỉ định 1 làm giá trị của thông số "độ sâu". Điều này có nghĩa là lệnh sao chép sẽ chỉ sao chép cam kết gần đây nhất vào máy cục bộ của chúng tôi.
Giả sử kho lưu trữ GitHub giả định của chúng tôi có 10.000 cam kết, có nghĩa là sẽ mất khá nhiều thời gian để sao chép hoàn toàn vào máy cục bộ của chúng tôi. Chúng tôi chỉ muốn sao chép một bản sao của mã hiện tại và 10 lần cam kết cuối cùng của nó, mà không sao chép toàn bộ lịch sử của kho lưu trữ. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
git clone -depth=10 https://github.com/username/project-name.git
Lệnh trên đã tạo một bản sao của dự án của chúng ta ở trạng thái hiện tại. Chúng tôi có thể tìm kiếm lại 10 cam kết trong lịch sử của kho lưu trữ. Tuy nhiên, dự án của chúng tôi không đưa ra dữ liệu về bất kỳ cam kết nào trong lịch sử của kho lưu trữ.
Đọc tài liệu chính thức của Git về lệnh git clone để tìm hiểu thêm về các tùy chọn cấu hình nâng cao.
URL Git
Có một số loại URL khác nhau được hỗ trợ bởi lệnh git clone. Lệnh git clone thường được sử dụng để sao chép các kho lưu trữ từ xa và vì vậy chúng ta sẽ khám phá các loại URL chính được Git hỗ trợ bên dưới.
Git
Giao thức git được sử dụng để sao chép kho lưu trữ bằng hệ thống kiểm soát phiên bản Git. Giao thức git không sử dụng bất kỳ phương pháp xác thực nào. Dưới đây là một URL mẫu sử dụng hệ thống kiểm soát phiên bản Git:
git://host.com/repo/path.git
URL bắt đầu bằng “git:”, thông báo cho ứng dụng khách Git sao chép kho lưu trữ bằng giao thức git.
SSH
Secure Shell, hoặc SSH, cho phép bạn truy cập các máy chủ nối mạng từ xa. SSH cung cấp xác thực và vì vậy URL SSH thường được sử dụng cho các kho lưu trữ Git an toàn. Đây là một URL Git mẫu sử dụng giao thức SSH:
ssh://[email protected]/repo/path.git
Trong ví dụ này, “người dùng” đề cập đến tên của người dùng đang cố gắng truy cập vào một kho lưu trữ cụ thể. Chúng tôi phải đăng nhập qua SSH trước khi có thể sao chép kho lưu trữ.
HTTP
Giao thức truyền siêu văn bản, hoặc HTTP, được sử dụng để truyền dữ liệu trang web qua internet. URL HTTP cũng thường được sử dụng cho các kho lưu trữ Git. Đây là một URL Git mẫu sử dụng HTTP:
https://host.com/repo/path.git
Trong ví dụ này, kho lưu trữ của chúng tôi sử dụng giao thức HTTPS. Thay vì sử dụng “git” hoặc “ssh”, chúng tôi chỉ định “https” ở đầu URL kho lưu trữ Git của chúng tôi.
Kết luận
Lệnh git clone được sử dụng để tạo bản sao cục bộ của kho lưu trữ Git. Nhân bản cho phép bạn tạo một bản sao độc lập của kho lưu trữ mà từ đó bạn có thể chỉnh sửa mà không ảnh hưởng đến phiên bản chính của dự án của bạn.
Khi bạn đã sẵn sàng lưu các thay đổi của mình vào phiên bản chính của dự án, bạn có thể tạo một cam kết.
Hướng dẫn này đã khám phá, với các ví dụ, cách sử dụng lệnh git clone. Bây giờ bạn đã có kiến thức cần thiết để bắt đầu sao chép kho lưu trữ bằng cách sử dụng git clone như một lập trình viên chuyên nghiệp!