Chuyển đến nội dung chính

Git Clone Branch: Hướng dẫn từng bước

Để clone một nhánh cụ thể, dùng lệnh git clone --single-branch --branch , thay bằng tên nhánh mong muốn và bằng URL của kho chứa.
Đã cập nhật 5 thg 10, 2026

Khám phá cùng AI

ChatGPTClaudePerplexity

Hãy tưởng tượng bạn đang viết một cuốn sách và muốn thử nghiệm các ý tưởng mới mà không làm xáo trộn bản gốc. Bạn có thể bắt đầu một cuốn sổ tay mới cho từng ý tưởng, giữ các bản thảo tách biệt.

Git, một hệ thống quản lý phiên bản, cho phép các nhà phát triển phần mềm làm điều tương tự với mã thông qua "nhánh". Mỗi nhánh giống như một lộ trình phát triển riêng biệt, cho phép bạn khám phá các thay đổi mà không ảnh hưởng đến mã nguồn chính.

So sánh git clone branch với việc viết sách

Trong bài viết này, tôi sẽ hướng dẫn bạn sử dụng git clone, tập trung vào việc clone các nhánh cụ thể. Nếu bạn muốn tìm hiểu thêm về Git, tôi gợi ý khóa học Introduction to Git này.

Hãy bắt đầu với câu trả lời ngắn gọn cho những bạn đang vội. Sau đó, chúng ta sẽ đi sâu vào chi tiết.

Câu trả lời ngắn: Cách clone một nhánh cụ thể

Để clone một nhánh cụ thể từ kho git, hãy dùng lệnh:

git clone --single-branch --branch <branch_name> <repository_url>

Thay <branch_name> bằng tên nhánh mong muốn và <repository_url> bằng URL của kho chứa. Lệnh này tạo một bản sao cục bộ của nhánh đã chỉ định, cho phép bạn phát triển ngay lập tức và tập trung trên nhánh đó.

Ví dụ

Xuyên suốt bài viết, chúng ta sẽ dùng kho này. Bạn có thể dùng nó để thử các lệnh học được trên máy của mình. Kho chứa có ba nhánh:

  1. main: Nhánh mặc định với hai tệp văn bản.
  2. add-new-file: Nhánh trong đó đã thêm tệp thứ ba.
  3. modify-file: Nhánh trong đó tệp thứ hai đã được chỉnh sửa.

Đây là cách chúng ta có thể clone nhánh add-new-file:

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

git clone là gì?

Theo mặc định, git clone được thiết kế để sao chép toàn bộ kho chứa vào một thư mục mới trên máy cục bộ của bạn, clone tất cả các nhánh. Cú pháp như sau:

git clone <repository_url>

Để clone kho ví dụ, chúng ta có thể làm như sau:

git clone https://github.com/fran-aubry/git-clone-example.git

Sau khi chạy lệnh này, tất cả các nhánh sẽ được sao chép về máy cục bộ của bạn. Tuy nhiên, tại một thời điểm, chỉ các tệp của một nhánh là hiển thị, gọi là nhánh được checkout. Sau khi clone một kho chứa, nhánh mặc định (thường là main hoặc master) sẽ được checkout.

nhánh mặc định được checkout khi git clone

Chuyển nhánh

Sau khi clone đầy đủ, chúng ta có thể chuyển (checkout) sang nhánh mong muốn bằng lệnh git checkout. Ví dụ, để checkout nhánh modify-file, chúng ta sẽ làm như sau:

git checkout modify-file

git check out branch

Độ sâu khi clone

Khi làm việc với git, các thay đổi trong một nhánh được lưu lại bằng cách commit chúng với lệnh git commit. Mỗi commit tạo ra một trạng thái mới của nhánh, mà bạn có thể quay lại khi cần. Hãy hình dung mỗi commit như một bức ảnh chụp nhanh, và git theo dõi tất cả các ảnh chụp đó. Bạn có thể đưa nhánh về bất kỳ ảnh chụp nào trong số này vào bất cứ lúc nào.

Lệnh git clone khi dùng mà không có tùy chọn sẽ tải về mọi commit của mọi nhánh vào máy cục bộ của bạn. Tùy kích thước dự án, việc này có thể chiếm khá nhiều dung lượng lưu trữ. Nếu bạn biết mình không cần toàn bộ lịch sử, bạn có thể dùng tham số --depth để chỉ định số lượng commit (hay ảnh chụp) bạn muốn clone. 

Để clone nhánh chính nhưng chỉ tải commit gần nhất, hãy dùng lệnh sau:

git clone --depth=1 https://github.com/fran-aubry/git-clone-example.git

Clone một nhánh cụ thể

Chúng ta đã học cách clone một kho bằng git clone. Theo mặc định, lệnh này clone mọi thứ về máy cục bộ. Thông thường, bạn chỉ quan tâm làm việc trên một nhánh cụ thể, nên việc chỉ clone nhánh đó sẽ hiệu quả hơn. Cách này tiết kiệm dung lượng đĩa và cho phép bạn bắt tay vào làm ngay mà không cần chuyển nhánh sau khi clone.

Quay lại ví dụ viết sách, giả sử bạn được giao nhiệm vụ viết lại chương hai. Khi đó, bạn chỉ nên clone nhánh nơi công việc này đang diễn ra, vì không cần truy cập các nhánh liên quan đến việc sửa các chương khác.

Bạn có thể yêu cầu git chỉ clone một nhánh bằng cách thêm các tham số --single-branch và --branch theo sau là tên nhánh:

git clone --single-branch --branch <branch_name> <repository_url>

Hãy phân tích lệnh:

  • git clone: Lệnh git cơ bản để sao chép một kho từ nguồn từ xa về máy cục bộ.
  • --single-branch: Tùy chọn này bảo Git chỉ clone một nhánh. Nếu không chỉ định nhánh, nhánh mặc định sẽ được clone.
  • --branch <branch_name>: Tùy chọn này chỉ định nhánh cần clone. <branch_name> là tên nhánh bạn muốn clone.
  • <repository_url>: URL của kho chứa.

 Ví dụ, để chỉ clone nhánh modify-file từ kho của chúng ta, có thể làm như sau:

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

Cách làm việc với một nhánh đã clone

Khi làm việc trên một nhánh, có ba thao tác thiết yếu bạn cần thực hiện:

  1. Lưu công việc hiện tại bằng cách tạo ảnh chụp trạng thái hiện thời.
  2. Tải lên các thay đổi để mọi người có thể truy cập.
  3. Tải về thay đổi của người khác và hợp nhất với phần của bạn.

Lưu thay đổi của bạn với git commit

Trong Git, lưu công việc của bạn được gọi là tạo một commit. Quá trình này tạo ảnh chụp trạng thái hiện tại của nhánh bạn đang làm.

Trạng thái của nhánh được lưu trên máy cục bộ sau mỗi commit, cho phép bạn di chuyển giữa các giai đoạn tiến độ khác nhau.

minh họa các commit trên một nhánh git

Để commit các thay đổi trong git, bạn dùng lệnh git commit. Tuy nhiên, trước khi commit, git cần biết những tệp nào bạn muốn đưa vào commit. Bạn chỉ định các tệp cần lưu bằng lệnh git add. Cú pháp như sau:

git add <path_to_file>

Trong cú pháp, <path_to_file> là đường dẫn tới tệp bạn muốn commit. Chẳng hạn, nếu chúng ta đang ở nhánh modify-file của kho ví dụ và đã thêm một đoạn văn vào file2.txt, bạn sẽ thêm tệp đó bằng cách chạy:

git add file2.txt

Sau khi thêm tất cả tệp bạn muốn đưa vào commit, bạn có thể tiến hành commit bằng cách chạy:

git commit -m <message>

Ở đây, tham số <message> nên là một thông điệp ngắn gọn đặt trong dấu ngoặc kép, mô tả súc tích các thay đổi. Ví dụ:

git commit -m "Add paragraph"

Dưới đây là một số quy ước cho thông điệp commit. Chúng rất quan trọng để đảm bảo rõ ràng và dễ hiểu cho tất cả mọi người tham gia dự án:

  • Dùng lối mệnh lệnh: Bắt đầu thông điệp commit bằng một động từ ở dạng mệnh lệnh (ví dụ: "Add", "Fix", "Update"). Chẳng hạn, thay vì "Added new feature", hãy viết "Add new feature".
  • Ngắn gọn nhưng mô tả rõ: Hướng tới thông điệp ngắn, lý tưởng dưới 50 ký tự. Tuy nhiên, ưu tiên sự rõ ràng khi mô tả thay đổi. Thay vì "Changed stuff", hãy viết "Update styling for navigation bar".
  • Tránh thông điệp chung chung: Tránh các thông điệp mơ hồ như "Fix bugs" hoặc "Make improvements". Thay vào đó, hãy cụ thể: "Fix bug in login form validation" hoặc "Improve readability of documentation".

Tải lên thay đổi của bạn với git push

Khi bạn commit, bạn tạo một ảnh chụp các thay đổi trên máy cục bộ. Để người khác truy cập được các thay đổi này, bạn cần tải chúng lên. Để làm vậy, bạn dùng lệnh push.

Cú pháp cơ bản của lệnh push trong Git là:

git push <remote> <branch>

Hãy cùng phân tích:

  • <remote>: Tên của kho chứa từ xa nơi bạn muốn đẩy các thay đổi. Theo mặc định, khi bạn clone một kho, kho từ xa có tên là origin.
  • <branch>: Tên nhánh có các thay đổi bạn muốn đẩy lên kho từ xa. Nếu bỏ qua tham số này, Git sẽ đẩy thay đổi dựa trên nhánh hiện tại và cấu hình theo dõi từ xa.

Một số trường hợp sử dụng phổ biến của git push:

  • Đẩy thay đổi từ nhánh hiện tại: git push
  • Đẩy thay đổi từ một nhánh cụ thể: git push origin <branch>

Tải về thay đổi với git pull

Git cho phép các nhóm lớn làm việc đồng thời trên cùng một dự án. Khi đồng nghiệp chỉnh sửa cùng nhánh bạn đang làm, nhánh cục bộ của bạn có thể trở nên lỗi thời so với nhánh từ xa.

Để tải về các commit của người khác, chúng ta dùng lệnh git pull. Cú pháp cơ bản của lệnh pull trong git là:

git pull <remote> <branch>

Ý nghĩa từng tham số:

  • <remote>: Tên kho chứa từ xa mà bạn muốn pull. Theo mặc định, kho này có tên là origin.
  • <branch>: Tên nhánh mà bạn muốn pull thay đổi. Nếu không chỉ định, git sẽ dùng nhánh hiện tại cùng nhánh upstream của nó.

Một số trường hợp sử dụng phổ biến của git pull:

  • Pull thay đổi từ nhánh hiện tại: git pull
  • Pull thay đổi từ một nhánh cụ thể: git pull origin <branch>

Quy trình commit-pull-push

Khi sử dụng Git, tôi khuyến nghị thường xuyên pull cập nhật để đảm bảo nhánh cục bộ luôn mới nhất. Tôi đề xuất tuân theo các thực hành tốt sau:

  • Trước khi bắt đầu làm việc, hãy pull các cập nhật mới nhất cho nhánh hiện tại để đảm bảo bạn đang làm trên phiên bản mới nhất.
  • Commit thường xuyên, đảm bảo mỗi commit tập trung vào các thay đổi nhỏ, có liên quan logic.
  • Sau khi thực hiện một số thay đổi và tạo commit, hãy pull lại để cập nhật nhánh của bạn, phòng khi ai đó cũng vừa cập nhật song song.
  • Cuối cùng, push các thay đổi của bạn lên kho từ xa.

Quy trình làm việc Git

Xung đột Git

Khi chạy lệnh git pull để tải thay đổi từ kho từ xa, có thể gặp tình huống một commit khác đã sửa cùng những dòng như commit cục bộ của bạn. Git cố gắng tự động hợp nhất các thay đổi và thường thành công. Ví dụ, nếu các thay đổi được thực hiện ở những phần khác nhau của cùng một tệp, Git có thể hợp nhất trơn tru vì các commit ảnh hưởng đến các đoạn riêng biệt.

Tuy nhiên, nếu bạn và một cộng tác viên khác đã chỉnh sửa cùng một đoạn văn, git sẽ không thể xác định phiên bản nào cần giữ, dẫn đến xung đột hợp nhất. Lúc này, bạn sẽ cần tự xử lý xung đột bằng cách quyết định giữ thay đổi nào.

Để được hướng dẫn thêm về cách xử lý xung đột, tôi khuyến nghị đọc bài viết về cách giải quyết xung đột hợp nhất trong Git.

Tải về từ GitHub

Trong một số tình huống, bạn muốn có bản sao cục bộ của kho để sử dụng mà không có ý định chỉnh sửa. Nếu đó là kho công khai, bạn không cần cài Git trên máy. Bạn có thể tải trực tiếp kho từ GitHub bằng cách nhấp nút Code rồi đến nút Download Zip như hình dưới:

Ví dụ tải xuống từ GitHub

Kết luận

Clone Git cho phép bạn sao chép một kho Git về máy cục bộ, giúp bạn sử dụng mã hoặc mở rộng nó bằng cách thêm chức năng mới. Khi clone một kho, tất cả nhánh được tải xuống, điều này có thể tiêu tốn đáng kể dung lượng đĩa.

Các nhánh được dùng để làm việc trên những thay đổi hoặc tính năng cụ thể. Clone một nhánh cụ thể cho phép bạn đóng góp cho phần thay đổi đó mà không cần tải về những phần không liên quan, nhờ đó tiết kiệm nhiều dung lượng và giữ cho ổ đĩa của bạn gọn gàng hơn.

Nếu bạn muốn tìm hiểu thêm về chủ đề này, tôi gợi ý bài Hướng dẫn GitHub và Git cho người mới bắt đầu.


François Aubry's photo
Author
François Aubry
LinkedIn
Kỹ sư full-stack & nhà sáng lập tại CheapGPT. Giảng dạy luôn là niềm đam mê của tôi. Từ những ngày còn là sinh viên, tôi đã háo hức tìm kiếm cơ hội kèm cặp và hỗ trợ các bạn học khác. Niềm đam mê đó đã thôi thúc tôi theo học tiến sĩ, nơi tôi cũng đảm nhiệm vai trò trợ giảng để hỗ trợ con đường học thuật của mình. Trong những năm ấy, tôi tìm thấy sự mãn nguyện lớn lao trong môi trường lớp học truyền thống, xây dựng kết nối và thúc đẩy việc học tập. Tuy nhiên, với sự ra đời của các nền tảng học trực tuyến, tôi nhận ra tiềm năng thay đổi của giáo dục số. Thực tế, tôi đã trực tiếp tham gia phát triển một nền tảng như vậy tại trường đại học của chúng tôi. Tôi tận tâm kết hợp các nguyên tắc giảng dạy truyền thống với những phương pháp số đổi mới. Đam mê của tôi là tạo ra các khóa học không chỉ hấp dẫn và giàu thông tin mà còn dễ tiếp cận với người học trong thời đại số này.
Chủ đề
Git

Học Git với những khóa học này!

Khóa học

Giới thiệu về các khái niệm GitHub

2 giờ
53.7K
Tìm hiểu cách sử dụng các tính năng khác nhau của GitHub, điều hướng giao diện và thực hiện các tác vụ cộng tác hàng ngày.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm