Hiện nay khá đông các lập trình viên tại Việt nam vẫn quen sử dụng một số công cụ quản lý mã nguồn như Microsoft Visual Source, SubVersion, CVS hoặc một số sử dụng Team Foundation Server. Các công cụ quản lý mã nguồn này thường mô hình client – server. Server là nơi tổng hợp quản lý tập trung mã nguồn từ các lập trình viên check-in lên. Tuy nhiên một xu hướng khác đang diễn ra phổ biến đó sử dụng GIT để quản lý mã nguồn.
Git là công nghệ quản lý mã nguồn – phiên bản phân tán (distributed revision control and source code management) do Linux Torvalds phát minh ra để quản lý mã nguồn nhân hệ điều hành Linux. Từ đó đến nay, Git được sử dụng rộng rãi trong cộng đồng lập trình viên thế giới, Apple iOS, Android, Java, PHP, Ruby, Python….
Mỗi thư mục Git (Git working directory) là một nơi lưu trữ hoàn chỉnh (full-fleged repository) với đầy đủ lịch sử các phiên bản và khả năng lưu vết các sửa đổi, mà không phụ thuộc vào kết nối mạng hay server trung tâm.
Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.
Để bắt đầu hiểu và sử dụng GIT một cách bài bản nhất, các bạn nên trực tiếp tham khảo tài liệu hướng dẫn bằng tiếng Anh tại đây
ProGit của Scot Chacon
Để phục vụ các bạn không quá giỏi tiếng Anh, hoặc muốn học GIT theo cách nhanh nhất, đủ dùng, tôi sẽ tổng hợp lại một số khái niệm, lệnh căn bản, công cụ giao diện để nhanh chóng sử dụng GIT. Nói trước, việc quản lý mã nguồn là việc sống còn, giống như quản lý tiền của thủ quỹ, đừng học ẩu, học vội, hậu quả sẽ rất đau lòng, đôi khí mất trắng mã nguồn của nhiều ngày làm việc đó !
Căn bản về GIT
Các hệ quản lý mã nguồn (SCM) khác sẽ lưu file mã nguồn và thông tin thay đổi (delta change)
Các SCM khác Git lưu nội dung thay đổi (delta change) so với file mã nguồn ban đầu
Việc lưu delta change này cần phải sử dụng phần mềm làm server để tập trung, đánh chỉ mục các thay đổi thuộc một phiên bản.
GIT trong mỗi phiên bản sẽ lưu những file thay đổi, và liên kết trỏ về những file không thay đổi từ phiên bản trước đó
Mỗi phiên bản lưu luôn file được cập nhật và link liên kết đối với những file không thay đổi. Ví dụ ở Version 2 và 3, file B không thay đổi
Cách quản lý này, khiến GIT hoạt động giống hệ thống quản lý thư mục trong hệ Linux. Khả năng đặt đâu cũng chạy tốt hơn hẳn các SCM khác. Hầu như mọi hoạt động thay đổi file đều diễn ra ngay trên lưu trữ cục bộ (local repository), cho đến khi nào dev muốn thực sự chốt thay đổi (commit) lên remote repository.
Ba trạng thái của file mã nguồn
- Committed: file ở thư mục làm việc (working directory) đã đồng nhất với file được lưu trong local repository
- Modified: file đang thay đổi
- Staged: file thay đổi, được chuẩn bị để chốt hạ (commit) vào local repository lần tới. Nếu commit thành công, thì file lại chuyển về trạng thái Commited.
Một hình ảnh nữa mô tả rõ hơn về 3 trạng thái
Thư mục .git là thư mục ẩn
git repository khi mở ra chưa nhiều thư mục con
Bình luận