star star star star star

Git là gì? Các câu lệnh Git cơ bản nên biết với lập trình viên

avt
Thảo Phạm
16 tháng 9, 2022  

Git là một hệ thống quản lý phiên bản phân tán (DVCS) phổ biến được sử dụng để quản lý mã nguồn. Nó cho phép mỗi lập trình viên có kho lưu trữ riêng, duy trì toàn bộ lịch sử các thay đổi.

Hãy cùng Top On Seek 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é!

Git là gì?

Git 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ở của GitHub 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. Git được ra đời vào năm 2005 do Linus Torvalds tạo ra.

Git 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.

Git là gì? Cách thức hoạt động của Git
Cách thức hoạt động của Git (Nguồn: Internet)

Version control system – VCS là gì?

VCS (Version Control System) là một hệ thống kiểm soát các phiên bản source code (mã nguồn) của sản phẩm phần mềm. Các VCS sẽ lưu trữ tất cả các file trong toàn bộ dự án và ghi lại toàn bộ lịch sử thay đổi code.

Mỗi sự thay đổi code sẽ được lưu thành một version (phiên bản) khác nhau, giúp các lập trình viên có thể dễ dàng lấy lại phiên bản mong muốn. Hơn nữa, lập trình viên có thể xem lại tất cả sự thay đổi của file. Mỗi phiên bản bao gồm: nội dung file bị thay đổi, ngày giờ thay đổi, người sửa đổi là ai, lý do thay đổi,…

VCS có tác dụng như thế nào?

  • Giúp chia sẻ code dễ dàng hơn. Lập trình viên có thể chia sẻ public cho mọi người hoặc set private cho một số người có thẩm quyền truy cập và lấy code.
  • VCS 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 các developer xem lại các thay đổi hoặc khôi phục (revert) lại phiên bản cũ.

Git là 1 Version Control System (VCS) nên cũng ghi nhớ lại toàn bộ lịch sử thay đổi của source code trong dự án. Lập trình viên sửa file như thế nào, thêm – xóa dòng code ở hàng nào,… đều được Git ghi nhận và lưu trữ lại.

Git là gì? Cách VCS hoạt động
Cách Version Control System (VCS) hoạt động (Nguồn: Internet)

GitHub là gì?

GitHub là dịch vụ cung cấp kho lưu trữ mã nguồn Git cho các dự án phần mềm. Điều quan trọng bạn cần nhớ là GitHub không phải là Git, GitHub chỉ là một dịch vụ lưu trữ.

Github có đầy đủ những tính năng của Git, ngoài ra nó còn bổ sung những tính năng về mạng xã hội để các developer tương tác với nhau. GitHub còn được xem là trang mạng xã hội Facebook cho cộng đồng lập trình viên. Tại đây, các developer có thể public mã nguồn, bình luận, đánh giá hay thậm chí là tham gia phát triển cùng.

GitHub có 2 phiên bản: miễn phí và trả phí. Phiên bản có phí thường được các doanh nghiệp sử dụng để tăng khả năng quản lý team cũng như phân quyền bảo mật dự án. Còn lại, phần lớn lập trình viên đều sử dụng Github với tài khoản miễn phí để lưu trữ source code.

Git và GitHub khác nhau như thế nào?

Thông qua các thông tin trên, chúng ta có thể dễ dàng phân biệt được sự khác nhau giữa Git và GitHub. Gitmột công cụ quản lý mã nguồn, còn GitHub là một kho lưu trữ từ xa giúp các bạn lưu trữ và đồng bộ những thay đổi mã nguồn. Các thành viên trong cùng một dự án có thể dễ dàng làm việc với nhau thông qua GitHub.

Hiện nay, GitHub đã trở thành một yếu tố có sức ảnh hưởng lớn trong cộng đồng lập trình viên. Bên cạnh Linkedin, GitHub được xem như một CV, Portfolio lập trình của bạn. Các nhà tuyển dụng cũng thường xuyên tham khảo GitHub Profile để tìm hiểu khả năng coding của ứng viên.

Giờ đây, kỹ năng sử dụng Git và Github đã trở thành một yêu cầu đối với các lập trình viên khi ứng tuyển.

Các tính năng và lợi ích của Git là gì?

1. Các tính năng của Git là gì?

  • 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ý source code.
  • Git cho phép nhiều nhà phát triển (developer) làm việc với nhau.
  • 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 (git clone) dễ dàng.
Git là gì? Git cho phép nhiều lập trình viên hoạt động song song trên cùng một dự án
Git cho phép nhiều lập trình viên hoạt động song song trên cùng một dự án (Nguồn: Internet)

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 Git đượ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.

Quy trình xử lý công việc của git là gì
Quy trình làm việc (workflow) trên Git (Nguồn: Internet)

Các câu lệnh cơ bản trong Git là gì?

1. Git version

Kiểm tra phiên bản của Git.

2. Git config

Định cấu hình các biến cấu hình chung – Nếu bạn đang làm việc với các developer 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.

3. Git help config

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:

4. Git test

  • Tạo test repository trong hệ thống local.
  • Di chuyển đến test repository.

5. Git init

  • Lệnh này được dùng khi bạn muốn tạo một phiên bản git mới cho một dự án.

Lệnh này sẽ tạo một tệp văn bản có tên là info.txt trong thư mục test; bạn có thể viết gì đó để ghi nhớ và lưu lại.

Tạo tệp info.txt

6. Git status

Câu lệnh Git status dùng để kiểm tra status của repository.

7. Git add

Thêm tệp bạn đã tạo để thực hiện commit.

Thêm tệp bạn đã tạo để thực hiện commit.

8. Git commit

  • Commit những thay đổi trong đoạn code của repository bằng một tin nhắn 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.
Thực hiện thay đổi trong tệp
  • 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. 

9. Git config – – global user

Thêm tên người dùng GitHub vào Cấu hình Git (Git Configuration).

10. Create a new repository

Tạo một kho lưu trữ từ xa (remote repository).

Git là gì? Giao diện tạo repo mới
Giao diện tạo repo mới trong GitHub

11. Git remote add origin

Kết nối local repository với remote repository của bạn.

12. Git push

Push (đẩy) 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.
Đẩy file info.txt lên repo của GitHub
Đẩy file info.txt lên repo của GitHub

13. Git branch

Tạo một nhánh có tên “first_branch” và hợp nhất (merge) nó với nhánh chính.

14. Git checkout

Lệnh trên chuyển sang nhánh mới từ nhánh chủ (master).

15. Git commit

  • 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”.

16. Git checkout master

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”.

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. Merge (Hợp nhất) – Git 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 – Git 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 – Git 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 – Git pull

Pull request 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 – Git 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 – git 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 – git 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.

Git là gì? Các câu lệnh git cơ bản
Các câu lệnh Git cơ bản (Nguồn: Internet)

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:

1. Sử dụng Git Cheat Sheets: 

Git Cheat Sheets là các website cung cấp git tự động giúp bạn làm việc với Git dễ dàng hơn. 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. Bạn hãy tham khảo CheatSheet của Git, link ở dưới bài viết nhé!

2. Commit thường xuyên

Bạn nên thường xuyên commit để các lập trình viên trong team dễ dàng code với nhau hơn và tránh xung đột khi kết hợp.

3. 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 thay đổi của mình.

4. Viết ghi chú khi commit

Bạn nên viết ghi chú chi tiết những thay đổi để những thành viên khác biết được tiến độ, công việc bạn đang thực hiện.

5. Thử nghiệm trên Branch khác

Bạn có thể sử dụng một nhánh khác để test code thay vì code trực tiếp trên nhánh chính.

6. Hoạt động theo một Git Workflow

Làm việc chung trên 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. 

Tham Khảo:

Git init là gì?

Lệnh git init là lệnh đầu tiên bạn khởi chạy trên Git. Lệnh git init được sử dụng để tạo một kho lưu trữ (repository) trống và mới. Một số lệnh Git chạy bên trong kho lưu trữ, nhưng lệnh init có thể chạy cả bên trong và bên ngoài kho lưu trữ.

Git commit là gì?

Lệnh git commit là lệnh cam kết lưu lại một ảnh chụp màn hình (snapshot) về các thay đổi code trong kho lưu trữ nội bộ (local repo) trong quá trình lập trình viên làm việc với Git.

Tham khảo một số chủ đề SEO liên quan: SEO cam kết, dich vu tang traffic chat luong, SEO top gg, SEO tiktok, SEO agency, SEO web top Google, GPT cho SEO, SEO website top google, AI cho SEO, customer journey, content bán hàng, SEO Onpage, làm SEO như thế nào, content là gì, SEO từ khoá google, disavow là gì, SEO từ khóa google, dịch vụ SEO traffic, viết bài chuẩn SEO, dịch vụ traffic website, dịch vụ SEO từ khóa top google, check traffic website, cách SEO offpage, dịch vụ Entity SEO, dịch vụ SEO từ khóa uy tín, SEO bền vững, SEO từ khóa, có nên SEO top google, dịch vụ SEO trọn gói, thuê SEO website, dịch vụ SEO tổng thể website, SEO on page và off page

    stick_img
    Bạn muốn hiểu thêm?
    Xem chi tiết
    Bạn có tầm nhìn.
    Chúng tôi có đội ngũ để
    Giúp bạn đạt được tầm nhìn đó
    Chat