Skip to main content

Command Palette

Search for a command to run...

Git 01. Version control system (VCS) là gì? Git là gì?

Published
3 min read

Hello! I'm Zu.Doan

Đây là series tổng hợp lại kiến thức về Git, mục đích để đào sâu về VCS cũng như Git để có thể giải quyết các vấn đề về quản lý source code.

Nội dung bài viết ưu tiên sự ngắn gọn, dễ hiểu để mọi người có thể học & áp dụng ngay lập tức.

1. Version control system (VCS) là gì?

  • VCS là một hệ thống ghi lại những sự thay đổi của một hoặc nhiều file theo thời gian, vì vậy bạn có thể gọi tới bất cứ một version cụ thể nào trước đó.
  • Có thể revert file, entire project back to previous state.
  • Có thể so sánh sự thay đổi theo thời gian.
  • Theo dõi chủ thể tương tác vào file/project source.
  • Tránh mất mát và dễ dàng phục hồi file/project source.

2. Một chút lịch sử VCS

  • Local VCS: là một hệ thống local computer có chứa một simple DB để lưu các sự thay đổi của file. (Không làm việc nhóm được) - Don't care it
  • Centralized VCS (eg: SVN) - Don't care it
  • Distributed VCS (eg: Git) - Take care it

3. Tìm hiểu Git là gì thông qua 5 yếu tố (mình chỉ đề cập tới 3 yếu tố quan trọng)

3.1 Snapshots, Not differences

Là việc lưu trữ các file đã thay đổi + tham chiếu của các file không thay đổi.

Hình dưới đây mô tả cách hoạt động của các VCS khác (e.g SVN)

Git01_3.1_1.png

Các bạn có thể thấy, qua từng version, chỉ các file có nội dung thay đổi mới dc lưu trữ ở version tiếp theo.

Còn Git sẽ lưu trữ tất cả các file thay đổi + tham chiếu tới các file không thay đổi (với file ở version liền trước) ở version tiếp theo

Git01_3.1_2.png

3.2 Gần như mọi thứ được thực hiện ở local

Bởi vì khi sử dụng Git, quá trình pull code đã chính là tạo ra 1 project version ở máy local (đã được lưu ở local disk) tương tự như trên remote repository (eg: commit code, check log, history...)

3.3 Ba vùng làm việc của Git (của file trong Git)

Ba vùng đó là: Working directory - Staging area - .git directory (repository local)

Git01_3.3_1.png

Có thể mô tả hình ảnh trên như sau:

  • Khi làm việc ở local, chúng ta phải pull code từ remote repository về và thực hiện checkout new brach để làm việc.
  • Sau khi chỉnh sửa các files xong, chúng ta cần đưa các files đã thay đổi đó vào Staging area để chuẩn bị cho thao tác commit.
  • Sau khi commit xong, chúng ta lại đưa tiếp các files đó từ Staging area tới .git directory (repository local) để chuẩn bị cho thao tác push code lên remote repository.

Hi vọng bài viết này sẽ hữu ích đối với các bạn.

Thank everyone! Bye2 :D

50 views

More from this blog

zujs

35 posts