Git là gì? Các lệnh git cơ bản mà mọi lập trình viên nên biết

0
36
Rate this post

Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS) và là một trong những hệ thống quản lý phiên bản phân tán được sử dụng rộng rãi nhất hiện nay. Git cung cấp cho mỗi lập trình viên một kho lưu trữ (repository) riêng để chứa toàn bộ lịch sử thay đổi của dự án.

Git: Hệ thống quản lý phiên bản phân tán

Git là một hệ thống quản lý phiên bản phân tán mã nguồn mở (Version Control System – VCS). VCS lưu trữ tất cả các tệp trong dự án và ghi lại toàn bộ lịch sử thay đổi của tệp. Mỗi lần thay đổi được lưu lại sẽ trở thành một phiên bản.

VCS giúp lập trình viên lưu trữ nhiều phiên bản khác nhau của mã nguồn được nhân bản (clone) từ kho chứa mã nguồn (repository). Mỗi thay đổi vào mã nguồn trên máy tính cá nhân có thể được ủy thác (commit) rồi đưa lên server nơi đặt kho chứa chính. Một máy tính khác nếu có quyền truy cập cũng có thể clone lại mã nguồn từ kho chứa hoặc clone lại một tập hợp các thay đổi mới nhất trên máy tính kia.

Lập trình viên có thể xem lại danh sách các thay đổi của tệp như xem một dòng thời gian của các phiên bản. Mỗi phiên bản bao gồm nội dung file bị thay đổi, ngày giờ sửa đổi, người thay đổi là ai, lý do thay đổi hay tên phiên bản.

Vietnamese translation – Dnulib

Lợi ích của Git

Git cung cấp nhiều lợi ích cho các dự án phát triển phức tạp. Dưới đây là một số lợi ích quan trọng của Git:

  • Lưu lại lịch sử các version của bất kỳ thay đổi nào của dự án. Giúp xem lại các sự thay đổi hoặc khôi phục (revert) lại sau này.
  • Việc chia sẻ code trở nên dễ dàng hơn, lập trình viên có thể public cho bất kỳ ai hoặc private chỉ cho một số người có thẩm quyền truy cập và lấy code về.
  • Dễ dàng kết hợp các phân nhánh (branch), giúp quy trình làm việc code theo nhóm đơn giản hơn rất nhiều.
  • Chỉ cần clone mã nguồn từ kho chứa hoặc clone một phiên bản thay đổi nào đó từ kho chứa, hoặc một nhánh nào đó từ kho chứa là bạn có thể làm việc ở mọi lúc mọi nơi.
  • Deployment sản phẩm của bạn trở nên không thể dễ dàng hơn.

Các thuật ngữ quan trọng của Git

Trong quá trình làm việc với Git, có một số thuật ngữ quan trọng mà lập trình viên nên hiểu. Dưới đây là danh sách các thuật ngữ quan trọng và ý nghĩa của chúng:

1. Branch (nhánh)

Các nhánh đại diện cho các phiên bản cụ thể của một kho lưu trữ tách ra từ project chính. Branch cho phép bạn theo dõi các thay đổi thử nghiệm bạn thực hiện đối với kho lưu trữ và có thể hoàn nguyên về các phiên bản cũ hơn.

2. Commit (cống hiến)

Mỗi commit đại diện cho một thời điểm cụ thể trong lịch sử dự án. Sử dụng lệnh commit kết hợp với lệnh git add để cho git biết những thay đổi bạn muốn lưu vào kho lưu trữ cục bộ.

3. Checkout (chuyển ngữ cảnh)

Sử dụng lệnh git checkout để chuyển giữa các nhánh. Chỉ cần nhập git checkout theo sau là tên của nhánh bạn muốn chuyển đến hoặc nhập git checkout master để trở về nhánh chính (master branch).

Vietnamese translation – Dnulib

4. Fetch (tải về)

Lệnh git fetch tìm nạp các bản sao và tải xuống tất cả các tệp nhánh vào máy tính của bạn. Sử dụng nó để cập nhật các thay đổi mới nhất vào kho lưu trữ của bạn. Nó có thể tải về nhiều nhánh cùng một lúc.

5. Fork (sao chép)

Một fork là một bản sao của một kho lưu trữ (repository). Lập trình viên thường tận dụng lợi ích của fork để thử nghiệm các thay đổi mà không ảnh hưởng đến dự án chính.

Vietnamese translation – Dnulib

6. Head (đầu)

Các commit ở đầu của một nhánh được gọi là head. Nó đại diện cho commit mới nhất của kho lưu trữ mà bạn đang làm việc.

7. Index (chỉ mục)

Khi bạn thêm, xóa hoặc thay đổi một tệp, nó vẫn nằm trong chỉ mục cho đến khi bạn sẵn sàng commit những thay đổi đó. Đây là khu vực tổ chức (staging area) cho Git. Sử dụng lệnh git status để xem nội dung của chỉ mục của bạn.

8. Master (chủ đề chính)

Master là nhánh chính của tất cả các kho lưu trữ của bạn. Nó nên bao gồm các thay đổi và commit gần đây nhất.

9. Merge (hợp nhất)

Lệnh git merge được sử dụng để hợp nhất các thay đổi từ một nhánh sang nhánh khác.

10. Origin (nguồn gốc)

Origin là phiên bản mặc định của kho lưu trữ. Origin cũng đóng vai trò là bí danh hệ thống để liên lạc với nhánh chính. Sử dụng lệnh git push origin master để đẩy các thay đổi cục bộ đến nhánh chính.

Vietnamese translation – Dnulib

11. Pull (kéo)

Pull requests thể hiện các đề xuất thay đổi cho nhánh chính. Nếu bạn làm việc với một nhóm, bạn có thể tạo các pull request để yêu cầu người bảo trì kho lưu trữ xem xét các thay đổi và hợp nhất chúng. Sử dụng lệnh git pull để áp dụng các thay đổi vào nhánh chính.

12. Push (đẩy)

Lệnh git push được sử dụng để cập nhật các nhánh từ xa với các thay đổi mới nhất mà bạn đã commit.

13. Rebase (sắp xếp lại)

Lệnh git rebase cho phép bạn phân tách, di chuyển hoặc thoát khỏi các commit. Nó cũng có thể được sử dụng để kết hợp hai nhánh khác nhau.

14. Remote (từ xa)

Một Remote (kho lưu trữ từ xa) là một bản sao của một nhánh. Remote giao tiếp với nhánh gốc (origin branch) và các Remote khác trong kho lưu trữ.

15. Repository (kho lưu trữ)

Kho lưu trữ Git chứa tất cả các tệp dự án, bao gồm các nhánh, thẻ và commit.

16. Stash (tạm giữ)

Lệnh git stash sẽ loại bỏ các thay đổi khỏi chỉ mục của bạn và lưu chúng cho sau này. Nó hữu ích khi bạn muốn tạm dừng công việc hiện tại và làm việc khác trong một khoảng thời gian. Một lưu ý là bạn không thể stash nhiều hơn một bộ thay đổi ở cùng một thời điểm.

17. Tags (nhãn)

Tags cung cấp cho bạn một cách để theo dõi các commit quan trọng. Các tags nhẹ chỉ đơn giản là con trỏ trong khi các tags chú thích được lưu trữ dưới dạng các đối tượng đầy đủ.

18. Upstream (ngược dòng)

Trong ngữ cảnh của Git, upstream đề cập đến nơi bạn push các thay đổi của mình, thường là nhánh chính (master branch).

Đây chỉ là một số thuật ngữ quan trọng của Git. Tuy nhiên, vẫn còn rất nhiều thuật ngữ khác nữa mà bạn có thể tìm hiểu trong tài liệu tham khảo Git.

Lệnh Git cơ bản

Dưới đây là một số lệnh Git cơ bản mà mọi lập trình viên nên biết:

  1. git config: Để set user name và email của bạn trong main configuration file.
  2. git init: Khởi tạo 1 git repository cho project mới hoặc đã có.
  3. git clone: Copy 1 git repository từ remote source.
  4. git status: Để kiểm tra trạng thái của các file bạn đã thay đổi trong thư mục làm việc.
  5. git add: Thêm thay đổi đến stage/index trong thư mục làm việc.
  6. git commit: Commit là một action để Git lưu lại một snapshot của các sự thay đổi trong thư mục làm việc.
  7. git push/git pull: Push hoặc Pull các thay đổi đến remote.
  8. git branch: Liệt kê tất cả các branch (nhánh).
  9. git checkout: Chuyển sang branch khác.
  10. git stash: Lưu thay đổi mà bạn không muốn commit ngay lập tức.

Dưới đây là một số lời khuyên khi làm việc thường xuyên với Git trong công việc:

  1. Sử dụng Git Cheet Sheets để dễ dàng tìm lệnh Git bạn cần.
  2. Commit thường xuyên và tách nhỏ các commit của bạn.
  3. Luôn test trước khi commit.
  4. Viết ghi chú khi commit để cho các thành viên khác biết loại thay đổi bạn đã thực hiện.
  5. Sử dụng branch để theo dõi các dòng phát triển khác nhau.
  6. Theo một Git Workflow để đảm bảo cả nhóm của bạn cùng thực hiện như nhau.

Hy vọng với bài viết này, bạn đã hiểu rõ hơn về Git là gì và các lệnh Git cơ bản mà mọi lập trình viên nên biết. Dnulib sẽ tiếp tục cung cấp kiến thức hữu ích cho bạn. Nếu bạn quan tâm tới các vị trí tuyển dụng IT tại HCM, Hà Nội, Đà Nẵng, hãy truy cập Dnulib.