Git là gì? Git là một hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay. Tuy nhiên, đối với những lập trình mới, không phải ai cũng hiểu rõ ràng và thành thục về Git. Hãy cùng Thetips tìm hiểu Git là gì, các tính năng, lợi ích, thuật ngữ cơ bản và quy trình làm việc của Git thông qua bài viết này nhé!
>> Xem thêm: OOP là gì? Lý giải đơn giản về lập trình hướng đối tượng
Git là gì?
Git được ra đời vào năm 2005 do Linus Torvalds tạo ra. Nó là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS) mã nguồn mở và miễn phí được sử dụng để quản lý hiệu quả các dự án từ nhỏ đến rất lớn.
Nó cung cấp cho mỗi lập trình viên một kho lưu trữ riêng chứa toàn bộ lịch sử thay đổi code. Nó thường được sử dụng trong phát triển phần mềm để quản lý mã nguồn. Các kho lưu trữ Git được kết nối cục bộ, cho phép các lập trình viên làm việc trên máy của riêng họ, nhưng cũng được kết nối với một kho lưu trữ dùng chung.
Các tính năng và lợi ích của Git
1. Các tính năng của Git
- Git là mã nguồn mở và miễn phí.
- Git là một công cụ kiểm soát phiên bản phân tán được sử dụng để quản lý mã nguồn.
- Git cho phép nhiều nhà phát triển (developer) cộng tác.
- Hàng nghìn nhánh song song (parallel branches) của nó cho phép phát triển phi tuyến tính (non-linear development).
- Có thể tạo bản sao lưu code.
2. Lợi ích của Git là gì?
- Dễ dàng sử dụng, thao tác nhanh gọn và an toàn.
- Các dự án thường sẽ có nhiều lập trình viên cùng làm việc song song. Do đó, một hệ thống quản lý phiên bản mã nguồn như Git là cần thiết để đảm bảo không có xung đột code.
- Lịch sử ghi chép. Các yêu cầu trong dự án thường xuyên được thay đổi và cập nhật. Vì vậy, một hệ thống kiểm soát phiên bản sẽ cho phép các lập trình viên khôi phục (revert) và quay lại phiên bản cũ hơn của code.
- Phân nhánh đơn giản hơn. Đôi khi một số dự án đang được chạy song song liên quan đến cùng một cơ sở code. Bạn có thể dễ dàng kết hợp các phân nhánh (branch), giúp quy trình code theo nhóm đơn giản hơn rất nhiều.
- Mã nguồn mở và phát triển phi tập trung. Chỉ cần clone mã nguồn, một phiên bản thay đổi hoặc một nhánh nào đó từ kho lưu trữ là bạn có thể làm việc ở mọi lúc mọi nơi.
Quy trình xử lý công việc (workflow) trên Git
Workflow của nó được chia thành ba trạng thái (status):
– Thư mục làm việc (Working directory) – Thay đổi các tệp trong thư mục làm việc hiện tại của bạn.
– Khu vực tổ chức (Index) – Sắp xếp các tệp và thêm snapshot (ảnh chụp nhanh) các thay đổi vào index của bạn.
– Thư mục Git – Kho lưu trữ (Repository) – Commit lưu trữ vĩnh viễn các snapshot trong thư mục Git của bạn. Bạn có thể thực hiện các thay đổi đối với bất kỳ phiên bản hiện có nào, stage thư mục và commit.
Các thuật ngữ và câu lệnh Git quan trọng
1. Nhánh (Branch)
Git branch là gì? Trong Git, một nhánh (branch) đại diện cho các phiên bản cụ thể của một kho lưu trữ (repository) tách ra từ project chính của bạn. Branch cho phép bạn theo dõi các thay đổi thử nghiệm mà bạn thực hiện đối với repository và có thể hoàn tác về các phiên bản cũ hơn.
Ví dụ sơ đồ trên cho thấy một nhánh chính. Có hai nhánh riêng biệt được gọi là “Small feature” và “Large feature”. Bạn có thể hợp nhất (merge) nó với nhánh chính sau khi hoàn thành công việc của mình.
Bạn có thể dùng lệnh Git branch để liệt kê tất cả các nhánh trong hệ thống.
Cách sử dụng: Git Branch hoặc Git Branch-a.
2. Commit
Commit nghĩa là một hành động để Git lưu lại một ảnh chụp nhanh (snapshot) đối với các thay đổi trong thư mục làm việc. Mỗi lần commit nó sẽ lưu lại lịch sử chỉnh sửa của code kèm theo tên và địa chỉ email của người commit.
Cách sử dụng: git commit -m ”Đây là message, bạn dùng để ghi chú những thay đổi để sau này dễ tìm lại.”
3. Repository
Repository là kho lưu trữ Git chứa tất cả các tệp dự án của bạn bao gồm các branch, tags và commit.
4. Index
Bất cứ khi nào bạn thêm, xóa hoặc thay đổi một file, nó vẫn nằm trong index (chỉ mục) cho đến khi bạn sẵn sàng commit các thay đổi. Nó tương tự như khu vực tổ chức (stagging area).
Bạn có thể sử dụng lệnh git status để xem nội dung của index của bạn.
5. Hợp nhất (Merge)
Lệnh git merge kết hợp với các yêu cầu kéo (pull requests) để thêm các thay đổi từ nhánh này sang nhánh khác.
6. Rebase
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.
7. Push
Lệnh git push được sử dụng để cập nhật các nhánh từ xa với những thay đổi mới nhất mà bạn đã commit.
8. Pull
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.
Lệnh git pull được sử dụng để thêm các thay đổi vào nhánh chính.
9. Checkout
Sử dụng lệnh git checkout để chuyển đổi giữa các branch. Chỉ cần nhập git checkout theo sau là tên của branch bạn muốn chuyển đến hoặc nhập git checkout master để trở về branch chính (master branch).
10. Fetch
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 branch vào máy tính của bạn. Sử dụng nó để lưu các thay đổi mới nhất vào kho lưu trữ của bạn. Nó có thể tìm nạp nhiều branch cùng một lúc.
11. Fork
Một fork là một bản sao của một repository (kho lưu trữ). Các 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.
12. Head
Các commit ở đầu của một branch được gọi là head. Nó đại diện cho commit mới nhất của repository mà bạn hiện đang làm việc.
13. Remote
Một remote repository (kho lưu trữ từ xa) là một bản sao của một nhánh. Remote giao tiếp ngược dòng với nhánh gốc (origin branch) của chúng và các remote khác trong repository.
14. Stash
Lệnh git stash sẽ bỏ các thay đổi khỏi index của bạn. Nó được dùng nếu bạn muốn tạm dừng những việc bạn đang làm và làm việc khác trong cùng một thời điểm.
Các câu lệnh cơ bản trong Git là gì?
- Kiểm tra phiên bản của Git.
- Định cấu hình các biến configuration chung – Nếu bạn đang làm việc với các lập trình viên khác, bạn sẽ cần biết ai đang kiểm tra mã xuất nhập và thực hiện thay đổi.
- Nếu bạn cần hỗ trợ, hãy sử dụng các lệnh sau:
Thao tác này sẽ đưa bạn đến trang trợ giúp Git trong trình duyệt của mình, nơi bạn sẽ thấy:
- Tạo test repository trong hệ thống local.
- Di chuyển đến test repository.
- Tạo một phiên bản mới cho một dự án.
- Tạo một tệp văn bản có tên là info.txt trong thư mục test; viết một cái gì đó và lưu nó.
>>> Có thể bạn quan tâm: Robots.txt – Sức mạnh SEO có thể bị lãng quên
- Kiểm tra status của repository.
- Thêm tệp bạn đã tạo để thực hiện commit.
- Commit những thay đổi đó đối với lịch sử của repository bằng một message ngắn.
- Thực hiện bất kỳ thay đổi cần thiết nào đối với tệp và lưu.
- Bây giờ bạn đã thực hiện các thay đổi đối với tệp, bạn có thể so sánh sự khác biệt kể từ lần commit cuối cùng của bạn.
- Thêm tên người dùng GitHub vào cấu hình Git.
- Tạo một kho lưu trữ từ xa (remote repository).
- Kết nối local repository với remote repository của bạn.
- Push tệp vào remote repository.
- Làm mới trang repository của bạn trên GitHub. Bạn sẽ nhận được tệp local trên kho lưu trữ GitHub remote của mình.
- Tạo thêm ba tệp văn bản trong local repository – “info1.txt”, “info2.txt” và “info3.txt”.
- Tạo một nhánh có tên “first_branch” và hợp nhất (merge) nó với nhánh chính.
Lệnh trên tạo một nhánh.
Lệnh trên chuyển sang nhánh mới từ nhánh chủ (master).
Lệnh trên tạo và thêm “info3.txt” vào first_branch.
- Tạo một nhánh “first_branch” và hợp nhất nó với nhánh chính.
Lệnh trên tạo một cam kết cho first_branch.
Lệnh trên cho thấy rằng nhánh mới có quyền truy cập vào tất cả các tệp.
Lệnh trên cho thấy nhánh chính không có tệp “info3.txt”.
Lệnh trên được sử dụng để hợp nhất “first_branch” với nhánh chính. Bây giờ, nhánh chính có tệp “info3.txt”.
Một số lưu ý khi làm việc với Git
Những lưu ý khi làm việc với Git là gì? Đây là câu hỏi của rất nhiều người khi làm việc với phần mềm này. Tuy Git khá đơn giản và dễ sử dụng nhưng để nhớ tất cả các lệnh thì không hề đơn giản. Để công việc của mình đạt hiệu quả cao, bạn cần lưu ý một số điều sau:
- Sử dụng Git Cheet Sheets: Đây là các website cung cấp git tự động. Các lệnh trong Git rất nhiều, vì thế mới sử dụng và chưa thể nhớ tất cả thì bạn có thể dùng công cụ này.
- Commit thường xuyên: Bạn nên thường xuyên commit để các lập trình viên dễ dàng code hơn và tránh xung đột khi kết hợp.
- Test rồi mới commit: Trước khi thực hiện commit và chia sẻ với các thành viên khác, bạn cần test để hoàn tất quá trình.
- Viết ghi chú khi commit: Bạn nên viết ghi chú chi tiết để những thành viên khác biết được tiến độ, công việc bạn đang thực hiện.
- Thử nghiệm Branch khác: Bạn có thể sử dụng một nhánh khác để test.
- Hoạt động theo một Git Workflow: Sử dụng chung một git workflow sẽ giúp cả team hiểu nhau và thực hiện công việc hiệu quả hơn.
Git đã trở thành là một thuật ngữ quen thuộc trong lập trình và bất kì lập trình viên nào cũng sử dụng nó. Hy vọng bài viết trên đây đã cung cấp cho bạn những thông tin hữu ích về Git là gì, các tính năng, lợi ích và các câu lệnh cơ bản của Git. Hơn nữa, những lưu ý khi làm việc với Git sẽ giúp bạn làm việc với các thành viên và thực hiện dự án hiệu quả hơn.
Nguồn: https://www.simplilearn.com/tutorials/git-tutorial/what-is-git