Git là gì? 6 lợi ích tuyệt vời khi dùng Git.

Git là một trong những Hệ thống Quản lý Phiên bản Phân tán, vốn được phát triển nhằm quản lý mã nguồn (source code) hữu hiệu của Linux. Git là một hệ thống quản lý phiên bản (VCS), một loại VCS phân tán chạy nhanh, ổn định, dễ sử dụng

Định nghĩa 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). Nhờ Git, việc quản lý code và làm việc nhóm của developer trở nên đơn giản, thuận tiện hơn.

git-la-gi

Khi được hỏi tính năng yêu thích nhất của Git là gì, anh Hiền cho rằng đối với anh, đó là Git Hooks – Cho phép những đoạn script ở phía client hoặc server có thể được kích hoạt tự động khi bạn chạy một lệnh git.

githooks-la-gi
Githooks là một tính năng thú vị của Git.

Sự giống/khác nhau giữa các hệ thống quản lý phiên bản khác và Git là gì?

1. Giống:

Vì Git cũng là một hệ thống quản lý phiên bản (viết tắt: VCS), nên Git hỗ trợ:

  • Quản lý code và lịch sử thay đổi:

Ví dụ, bạn chỉnh sửa code và “trót dại” làm ra một đống bug? Bạn muốn quay trở lại trạng thái trước khi “nghịch ngợm”? Nếu không dùng VCS, bạn sẽ phải sao chép lại file trước khi chỉnh sửa, đồng thời phải thường xuyên cập nhật tên thư mục và tên file.

  • Làm việc nhóm:

Khi các thành viên trong nhóm muốn trao đổi code với nhau nhưng nếu không dùng VCS, họ sẽ phải:

  1. Chép từng module, đoạn code vào usb rồi đưa cho nhau
  2. Hoặc gửi các đoạn code nhỏ qua ứng dụng chat, mail…

Những cách trên đều rất thủ công, tốn resources và tiềm ẩn nhiều rủi ro. Các VCS (bao gồm Git) ra đời để khắc phục điều này.

2. Khác:

Git tiếp cận theo hướng phân tán (distributed approach) trong khi các VCS khác tiếp cận theo hướng tập trung (centralized).

Điểm khác biệt lớn nhất của Git là gì? Đó là khả năng tách nhánh (branch). Nhờ vào khả năng này mà Git đã mang đến những tính năng vượt trội dưới đây.

Những tính năng ưu việt của Git là gì so với SVN?

Nhờ tiếp cận theo hướng phân tán, Git mang đến những lợi ích vô cùng to lớn như hỗ trợ rất tốt cho teamwork, phân chia task, tổng hợp code trở nên dễ dàng hơn nhiều, cụ thể:

1. Sắp xếp công việc tốt hơn

Nghĩa là, bạn có thể tập trung giải quyết từng task mà không phải bận tâm lo lắng cho những task liên quan.

Nếu không dùng Git, khả năng cao là mọi người sẽ làm việc giẫm chân nhau, những task sắp hoàn thành sẽ bị trì hoãn. Ngoài ra, tất cả mọi task lớn nhỏ sẽ buộc phải hoàn thành hết trước khi deploy, bởi vì chỉ cần 1 task vẫn đang dang dở, cả phần mềm có thể bị sập.

2. Linh hoạt hơn khi phải làm cùng lúc nhiều task

Bởi vì bạn có thể cấu trúc công việc dễ dàng hơn nên việc làm nhiều task cùng lúc vô cùng dễ dàng. Ví dụ, cùng một lúc, chúng ta thường có một team làm tính năng mới, một vài team khác nâng cấp các tính năng hiện có, và một người fix bug.

remote-workflow-cua-git
Git hỗ trợ rất tốt cho làm việc nhóm

3. Tự tin hơn khi thử nghiệm những ý tưởng mới

Bạn có thể tách biệt việc thử nghiệm với dự án chính, điều này giúp nâng cao chất lượng code cũng như tính sáng tạo.

Nhìn chung, hiện nay Git được coi là tiêu chuẩn bất thành văn trong ngành. Nếu chưa biết về Git, bạn nên dành thời gian để bắt đầu tìm hiểu ngay. Vì, sớm hay muộn, bạn cũng sẽ thuộc về một team phải dựa dẫm vào nó.

4. Git cho phép chúng ta làm việc offline

Theo anh Thành Nhân, ở thời điểm hiện tại thì Git ưu việt hơn hẳn so với các hệ thống quản lý phiên bản tập trung như SVN.

Ví dụ, Git cho phép chúng ta làm việc offline trong một khoảng thời gian. Bạn chỉ cần internet cho nhu cầu hợp tác nhóm, hoặc lưu lịch sử commit code lên remote repos. Ngược lại, với SVN, mỗi khi sử dụng đều cần có kết nối đến máy chủ SVN.

5. Cách lưu trữ thông tin

Anh Jonathan chia sẻ rằng nếu so sánh với SVN và TFS, rõ ràng là Git hơn hẳn. Sự khác biệt cốt lõi trong cách quản lý storage và các nhánh của Git khiến cho việc merging cũng hoàn toàn khác.

Bên cạnh đó, cũng nhờ cách Git lưu trữ thông tin mà bạn có thể thực hiện vô vàn những điều thú vị để viết lại lịch sử commit.

Bổ dung thêm về tính năng này, anh Thành Nhân đưa ra một ví dụ khác. Khi tách nhánh, Git chỉ sử dụng 41 bytes cho một nhánh mới, giúp tiết kiệm không gian lưu trữ mà vẫn đảm bảo tốt nhu cầu công việc. Còn SVN, theo tôi biết, sẽ copy toàn bộ source code thành một bản mới khi tách nhánh.

6. Git miễn phí

Anh Đức Hiền cho rằng, nguyên do mà Git được yêu thích đến như vậy phần lớn là vì Git miễn phí. Nghĩa là, mọi người đều có thể bắt đầu sử dụng những chức năng cơ bản của Git mà không cần bất kì cơ sở hạ tầng server nào. Ngay cả Microsoft cũng đã bắt đầu dùng Git để host Windows source code.

Đặc biệt, Git được “sinh sau đẻ muộn” hơn nhiều, cho nên tốc độ phát triển nhanh chóng của nó lại càng đáng kinh ngạc.

Những lưu ý khi làm việc với Git là gì?

  • Phải tìm hiểu các nguyên tắc cốt lõi của Git

Anh Jonathan gợi ý bạn nên đọc cuốn Pro Git. Bạn không cần đọc cuốn sách này để biết cách dùng Git, nhưng nếu muốn sử dụng Git hiệu quả, bạn nên đọc kĩ.

Để tóm tắt lại, nếu là newbie, có 3 điều cơ bản bạn cần tìm hiểu/ghi nhớ trước tiên:

  1. Git là một đồ thị có hướng và không có vòng lặp
  2. Commit có tính bất biến
  3. Các nhánh chỉ là con trỏ. Mọi điều còn lại đều bắt nguồn từ đây
  • Không nên áp dụng cách dùng CVS và SVN vào Git
  • Những lưu ý khi commit
  • Những lưu ý khi check-in

Đây là những lưu ý  từ chính kinh nghiệm, sai lầm của bản thân:

  1. Check in những files không thực sự liên quan vào một VCS: Việc này đặc biệt hay xảy ra với các dự án Python, khi mọi người check in các .pyc files của họ. Bạn có thể thiết lập .gitignore để lờ chúng đi. Và cũng nên dùng githooks để dọn dẹp chúng lúc đổi nhánh.
  2. Check in những thứ hoàn toàn không nên: Ví dụ, mọi người rất hay hardcode mấy thứ như mysql passwords. Về khía cạnh bảo mật, lỗi này đúng là kinh dị. Mặt khác, nó cũng có nghĩa là bạn không thể chạy các chương trình tích hợp liên tục (Continuous Intergration – CI) vì tài khoản trong môi trường production (mong là) khác với môi trường test.
  3. Quên không check-in code mới: Hậu quả là mấy ngày làm việc thành công cốc, chỉ vì không để ý đến cảnh báo của Git. Và trong trường hợp này, điều duy nhất có thể làm là rút kinh nghiệm để không lặp lại sai lầm tương tự mà thôi.
  • Phân nhánh thường xuyên

Dù chỉ làm việc một mình, bạn vẫn nên “branch early, branch often”, đừng nên làm mọi thứ trên nhánh master để

  1. Tránh hình thành thói quen xấu
  2. Tận dụng được tính năng xịn nhất của một VCS

Hãy chắc chắn là bạn có một nhánh staging với các tính năng đã được unit test đầy đủ trước khi nhập vào nhánh master.

  • UI của Git cần được cải thiện

Resource hướng dẫn sử dụng Git hiệu quả?

  • Pro Git bao quát mọi vấn đề về Git, gồm cả  lý thuyết và ví dụ. Điều tuyệt vời nhất là sách được dịch ra nhiều ngôn ngữ, trong đó có cả tiếng Việt.
  • Atlassian’s Git resources có một số resource rất hữu ích, kèm theo hình minh họa bắt mắt, giúp người dùng nắm bắt các khái niệm dễ dàng hơn.
  • GitHub’s Git tutorial hướng dẫn thực hành từng bước, giúp tìm hiểu Git một cách trực quan.
  • Git cheat sheet tóm lược những nội dung quan trọng nhất. Bạn có thể in ra để dùng.
DOWNLOADS for Windows.

Standalone Installer from GOOGLE DRIVE

32-bit Git for Windows Setup.

64-bit Git for Windows Setup.

Password giải nén: tinungdung.com

RELATED NEWS
  • hướng dẫn các bạn các công cụ và đặc trưng cơ bản của Figma như hợp tác dự án, tạo prototypes,...

    Read More
  • Discord là ứng dụng chat và gọi điện miễn phí, an toàn cho game thủ. Discord được cung cấp miễn phí cho máy tính và thiết bị di động. Thay vì phải trả phí để sử dụng TeamSpeak hay dùng Skype, bạn có thể đơn giản hóa dịch vụ chat cho game thủ với Discord miễn phí.

    Read More
  • Zalo web là phiên bản Zalo online của ứng dụng chat phổ biến nhất hiện nay tại Việt Nam. Chỉ cần truy cập vào Chat.Zalo.me rồi đăng nhập Zalo, bạn có thể dễ dàng nhắn tin, gọi điện thoại miễn phí ngay trên trình duyệt web mà không phải cài đặt ứng dụng. Phiên bản Zalo online cũng có đầy đủ các tính năng cơ bản nhất, đảm bảo mang đến trải nghiệm tuyệt vời nhất cho người dùng mà không cần phải cài đặt phiên bản Zalo PC.

    Read More
  • Telegram PC là ứng dụng chat, nhắn tin miễn phí trên điện thoại di động, giờ đây đã có phiên bản dành riêng cho máy tính để bàn. Những tính năng của Telegram Desktop sánh ngang với Skype, Viber, Zalo... nhưng chương trình lại gọn nhẹ hơn và độ bảo mật cao hơn rất nhiều.

    Read More
  • Camtasia 2022 là công cụ quay video màn hình máy tính rất nhanh chóng và hiệu quả từ bất kỳ thiết bị nào. Với chất lượng hình ảnh và âm thanh tốt, hỗ trợ nhiều định dạng video phổ biến nhất hiện nay nên Camtasia Studio được rất nhiều người lựa chọn.

    Read More
  • Google Drive - dịch vụ lưu trữ và đồng bộ hóa tập tin được tạo bởi Google giúp người dùng có thể lưu trữ tập tin trên đám mây, chia sẻ tập tin, và chỉnh sửa tài liệu, văn bản, bảng tính, và bài thuyết trình với cộng tác viên. 

    Read More
  • EVKey là phần mềm hỗ trợ gõ tiếng Việt được xây dựng dựa trên mã nguồn mở của Unikey nổi tiếng. Bộ gõ tiếng Việt EVKey có dung lượng nhỏ gọn đảm bảo đáp ứng đầy đủ các nhu cầu cơ bản của người dùng khi soạn thảo văn bản.

    Read More
  • Bộ gõ tiếng Việt là gì? Tổng hợp các bộ gõ tiếng Việt tốt nhất hiện nay...

    Read More
  • Sandboxie Plus 0.9.8.4 / 5.53.3

    Read More
  • Sandbox là gì? Kích hoạt và sử dụng Sandbox trên Windows 10

    Read More
  • Trình duyệt tối ưu thao tác một tay, hỗ trợ Flow để gởi file, link sang Opera trên PC

    Read More
  • Opera Mini 8 PC là phiên bản trình duyệt Opera Mini dành cho máy tính với khả năng duyệt web tốc độ nhanh và cực kỳ linh hoạt. Với ứng dụng này, người dùng được toàn quyền kiểm soát việc truy cập, điều hướng, lưu trữ trang web, mở nhiều tab cùng lúc và bảo mật thông tin dữ liệu tuyệt đối cho mình.

    Read More