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