git là gì ?

Git là một hệ thống quản lý phiên bản (Version Control System – VCS) được sử dụng phổ biến trong phát triển phần mềm. Git giúp developer theo dõi, quản lý và lưu lại lịch sử thay đổi của source code trong quá trình phát triển dự án. Thay vì chỉ có một phiên bản code hiện tại, Git cho phép chúng ta lưu lại nhiều phiên bản khác nhau, từ đó có thể xem lại lịch sử thay đổi, khôi phục phiên bản trước hoặc phát triển nhiều tính năng song song mà không làm ảnh hưởng trực tiếp đến code chính.

Giới thiệu các config option cho git thường sử dụng

Các thành phần và khái niệm quan trọng trong Git

Git có khá nhiều khái niệm, tuy nhiên có một số thành phần cơ bản cần nhớ như Repository, Commit, Branch, Working Directory, Staging Area và Remote Repository.

Repository là nơi Git lưu trữ và quản lý source code cũng như toàn bộ lịch sử thay đổi của một project. Repository có thể nằm trên máy tính cá nhân hoặc được lưu trữ trên các nền tảng như GitHub, GitLab,…

Commit là một mốc ghi nhận những thay đổi của source code. Mỗi commit có thể được xem như một phiên bản của project tại một thời điểm cụ thể. Developer thường tạo commit sau khi hoàn thành một phần công việc để có thể theo dõi và quản lý lịch sử thay đổi.

Branch là một nhánh phát triển riêng trong Git. Branch cho phép developer phát triển một tính năng mới hoặc sửa lỗi mà không ảnh hưởng trực tiếp đến branch chính.

Ví dụ:

main
 ├── feature/login
 ├── feature/payment
 └── bugfix/cart

Trong đó main có thể là branch chính, còn feature/login là branch được tạo riêng để phát triển chức năng đăng nhập.

Working Directory là khu vực chứa các file mà developer đang làm việc và chỉnh sửa.

Staging Area là khu vực trung gian, nơi developer lựa chọn những thay đổi nào sẽ được đưa vào commit.

Remote Repository là repository được lưu trữ trên một server hoặc nền tảng trực tuyến như GitHub, GitLab,… giúp các thành viên trong team có thể chia sẻ và cộng tác trên cùng một project.

Cách thức hoạt động của Git

Git hoạt động dựa trên việc ghi nhận các thay đổi của source code thành những phiên bản khác nhau thông qua các commit.

Một quy trình Git cơ bản có thể hiểu như sau:

Working Directory
       ↓
    git add
       ↓
 Staging Area
       ↓
  git commit
       ↓
Local Repository
       ↓
   git push
       ↓
Remote Repository

Khi developer chỉnh sửa code, những thay đổi đó ban đầu nằm trong Working Directory. Sau đó developer sử dụng git add để đưa những thay đổi muốn lưu vào Staging Area.

Tiếp theo, sử dụng git commit để tạo một mốc lưu lại những thay đổi trong Local Repository. Nếu muốn chia sẻ code với các thành viên khác, developer có thể sử dụng git push để đưa commit lên Remote Repository.

Một số lệnh Git cơ bản thường được sử dụng:

git init
git clone
git status
git add
git commit
git branch
git switch
git merge
git pull
git push

Tầm quan trọng của Git

  1. Quản lý lịch sử source code
  2. Hỗ trợ làm việc nhóm
  3. Giảm rủi ro khi phát triển
  4. Hỗ trợ quy trình phát triển chuyên nghiệp

Bài viết khác

BÀI 5: TÌM HIỂU CHUYÊN SÂU VỀ LANGUAGE SWITCHING TRONG FLUTTER

1. Language Switching là gì? Trong một ứng dụng hỗ trợ nhiều ngôn ngữ, việc có sẵn các bản dịch chưa đủ để tạo ra trải nghiệm đa ngôn ngữ hoàn chỉnh. Ứng dụng còn cần xác định ngôn ngữ nào sẽ được sử dụng và cho phép thay đổi ngôn ngữ khi cần thiết. […]

TÌM HIỂU CHUYÊN SÂU VỀ UTC & LOCAL TIME CONVERSION TRONG FLUTTER

1. UTC & Local Time Conversion là gì? Trong một ứng dụng Flutter, thời gian xuất hiện ở rất nhiều chức năng như ngày tạo tài khoản, thời gian đặt hàng, lịch sử giao dịch, lịch hẹn, thời gian gửi thông báo và thời hạn của chương trình khuyến mãi. Khi ứng dụng chỉ chạy […]

TÌM HIỂU CHUYÊN SÂU VỀ DATE / NUMBER / CURRENCY FORMATTING TRONG FLUTTER

1. Date / Number / Currency Formatting là gì? Trong một ứng dụng Flutter, dữ liệu thường được lưu trữ và xử lý dưới dạng số, ngày giờ hoặc các kiểu dữ liệu có cấu trúc. Tuy nhiên, dữ liệu dùng để tính toán không nhất thiết giống với cách dữ liệu được hiển thị […]

TÌM HIỂU CHUYÊN SÂU VỀ LOCALIZATION (l10n) TRONG FLUTTER

1. Localization (l10n) là gì? Khi một ứng dụng được sử dụng ở nhiều quốc gia, sự khác biệt không chỉ nằm ở ngôn ngữ mà còn ở cách người dùng đọc ngày tháng, số, tiền tệ, đơn vị đo lường và các thông tin trên giao diện. Ví dụ, một ứng dụng bán hàng […]

TÌM HIỂU CHUYÊN SÂU VỀ INTERNATIONALIZATION (i18n) TRONG FLUTTER

1. Internationalization (i18n) là gì? Trong quá trình phát triển ứng dụng, lập trình viên thường xây dựng giao diện bằng một ngôn ngữ ban đầu, chẳng hạn như tiếng Việt. Khi ứng dụng được sử dụng bởi người dùng ở nhiều quốc gia, việc chỉ hỗ trợ một ngôn ngữ có thể khiến người […]

TÌM HIỂU CHUYÊN SÂU VỀ APP RELEASE & DEPLOYMENT TRONG FLUTTER

1. App Release & Deployment là gì? Trong quá trình phát triển ứng dụng Flutter, sau khi hoàn thành các chức năng, lập trình viên cần đưa ứng dụng đến người dùng thực tế. Ví dụ, một nhóm đã xây dựng xong ứng dụng bán hàng với những chức năng như đăng nhập, xem sản […]