Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS). Nó là một phần mềm tuyệt vời để bạn có thể dùng để quản lý source code, team work, log lại những gì mà bạn đã làm từ khi bắt đầu tới khi project kết thúc của một dự án. Chúng ta sẽ xem GIT có những gì và làm được gì trong quản lý source code của một dự án nhé.
Tại sao lại dùng GIT?
Ngoài GIT còn có SVN và một số phần mềm quản lý source code khác nhưng GIT được bàn dân thiên hạ dùng nhiều nhất và mình cũng vậy nên chọn GIT làm quản lý source code, nó có những tính năng ưu việt như sau:
- Team Work
- Quản lý phiên bản
- Lưu trữ code
Đã bao giờ anh em cùng làm project với nhau mà code được copy từ USB này sang USB khác rồi từ máy tính này sang máy tính khác, sau đó được chỉnh sửa rồi được gộp lại với nhau bằng những danh sách file mà ông A đã thay đổi để gộp lại với ông B và test, rồi những file cùng nhau sửa thì sẽ phải xem đoạn nào của ông A đoạn nào của ông B, hoặc bây giờ bạn có thể đồng bộ code lên drive . . . mỗi một lần copy, mỗi một lần đồng bộ lên drive, hoặc mỗi bộ code trên máy của từng thành viên được gọi là phiên bản và chúng nó được đồng bộ với nhau bằng chính các thành viên trong team.
Một ngày đẹp trời máy ông A bị virus mà ông A là code chính và đã viết thêm rất nhiều tính năng cho Project và ngày mai là phải báo cáo dự án rồi . . . phần mềm diệt virus chết tiệt đã xóa những file nhiễm của dự án, giờ chạy dự án không nổi? code chưa được gộp lại? làm sao ? lúc này git trở thành nơi lưu dự án chung ngoài các PC của mọi người ( ông A, bạn B ) thì có rất nhiều nơi cho phép các bạn lưu trữ source code của team mình free luôn.
GIT có những cái gì?
GIT có những khái niệm cần biết, và hiểu để khi thao tác với GIT sẽ dễ dàng hơn.
Những khái niệm cơ bản.
- Git repo
- Branch
- Commit
- Pull
- Push
- Clone
Mỗi một máy tính được cài GIT thì được gọi là GIT repo, nó bao gồm cả git server giống như github.com, hay bitbucket.com và gitlab.com . . . thường được gọi là Remote Repo và Local repo.
Remote repo là server git mà chúng ta push code lên, Local Repo là máy tính cá nhân của bạn và những máy tính mà bạn code trực tiếp lên đó tạo thay đổi ở đó.
Branch là những nhánh code hoặc những phiên bản do mình quy định, để phát triển một tính năng gì đó hoặc fix lỗi gì đó gọi là Branch.
Commit là những message những thay đổi sau khi code được log lại nhằm lưu trữ xem những thay đổi ở lần commit này là gì như thế nào? mỗi một commit thường đi kèm với những file thay đổi là gì? thông tin của thay đổi đó?
Pull là hành động lấy source code từ GIT remote repo về Local repo, và push thì ngược lại là đẩy commit ( những thay đổi ) lên Remote repo.
Clone là lấy source code từ 1 project cụ thể từ git remote về local repo.
Sử dụng như thế nào?
Tất nhiên là chúng ta sẽ phải cài git vào máy tính thì mới sử dụng được rồi, và cài thế nào thì chỉ cần google là biết cài liền, ngoài ra bạn sẽ có thắc mắc là các Repo làm việc với nhau như thế nào? và nói chuyện với nhau ra làm sao? thì chúng nó có quả SSH key để tương tác để nhận ra Key này của tài khoản nào và của ai?
Các bước cần làm.
- Cài đặt GIT
- Tạo project
- Add remote hoặc clone project từ git repo
- Tạo sự thay đổi
- Commit code
- Push code lên GIT remote Repo
Tài liệu về GIT
Bài này mình chỉ mang đến cho những bạn mới vào nghề có được những mường tượng về GIT là gì? sử dụng như thế nào? có những khái niệm gì? còn về thực tế thì có rất nhiều tài liệu hiệu quả và cặn kẽ về GIT, đơn giản chỉ cần tìm và làm theo là được, và nó khá là dài nên tìm hiểu dần dần.
Mình sẽ giới thiệu 2 link về GIT để cho các bạn focus và tránh bị lan man:
Tài liệu gốc về git : link
Ngoài ra có bài này cũng khá ok link ở đây
Tổng kết
Bài viết trên đây chỉ mang tính khái quát hóa, khái niệm về GIT cho những bạn chưa có khái niệm gì về GIT và cũng chưa mường tượng được tại sao phải sử dụng GIT? hay sử dụng nó như thế nào?.
Git thực sự đóng vai trò rất quan trọng trong quá trình làm việc, chính vì vậy mà chúng ta nên biết nó trước khi biết lập trình, trước khi làm team.
Hiện tại có rất nhiều open source được lưu trên git nếu chúng ta biết tận dụng thì việc tạo ra được một phần mềm, sẽ không phải tốn nhiều công sức nữa.