Tài trợ bài viết này và giới thiệu dịch vụ, sản phẩm, thương hiệu, nhu cầu tuyển dụng của doanh nghiệp đến với cộng đồng.
STDIO Một trong những phương pháp hiệu quả nhất trong việc quản lý mã nguồn là sử dụng một hệ thống Version Control System (VCS) mà tiêu biểu là Git. Bài viết sau sẽ giúp các bạn làm quen với Git và các command cơ bản của Git.
Nội dung bài viết

Giới thiệu

Đối với các dự án phát triển phần mềm lớn nhỏ, việc quản lý mã nguồn theo cách thông thường sẽ mất nhiều thời gian, chi phí và kém hiệu quả. Các thành viên trong nhóm phát triển sẽ phải tìm một cách nào đó để phiên bản làm việc trên máy tính cá nhân là mới nhất. Khi dự án có sự thay đổi, việc phục hồi lại thời điểm cần thiết là khá khó khăn. Do đó, chúng ta cần một phương pháp nào đó có thể khắc phục được các nhược điểm kể trên. Một trong những phương pháp hiệu quả nhất là sử dụng một hệ thống Version Control System (VCS) mà tiêu biểu là Git. Bài viết sau sẽ giúp các bạn làm quen với Git và các command cơ bản của Git.

Tiền đề bài viết

Tôi có cơ hội sử dụng Git khi tham gia phát triển một dự án game trên Unity3D tại MMLab (Phòng thí nghiệm Truyền thông Đa phương tiện). Trải qua một khoảng thời gian sử dụng, tôi đã tích luỹ được kinh nghiệm và kĩ năng sử dụng Git hiệu quả. Qua bài viết, tôi mong bạn đọc có nhu cầu sẽ có thể sử dụng Git trong dự án một cách hiệu quả hơn.

Đối tượng hướng đến

Các nhà phát triển dự án phần mềm với team làm việc có nhiều thành viên, đang cần một giải pháp hiệu quả để quản lý dự án. Bài viết cũng có thể được sử dụng làm tài liệu tra cứu khi cần thiết. Các đối tượng khác vui lòng đọc bài ở mức độ tham khảo.

Git là gì

Git là phần mềm quản lý mã nguồn phân tán được phát triển bởi Linus Torvalds dành cho việc phát triển Linux kernel. Git là phần mềm mã mở được phân phối theo giấy phép công GPL2.

Wikipedia

Git có khả năng hoạt động đa nền tảng, có sẵn cho các nền tảng Linux, Windows, Mac OSX, ...

Tại sao nên sử dụng Git

So sánh Git và các phương pháp quản lý dự án thông thường, lẽ dĩ nhiên Git là lựa chọn hoàn hảo. Tuy nhiên Git còn vượt trội hơn một số phần mềm quản lý khác nhờ những ưu điểm sau:

  • Dễ sử dụng và an toàn.
  • Mô hình phân chia branch (nhánh) giúp cho công việc dễ dàng được chia nhỏ và hoàn thành độc lập.
  • Có khả năng làm việc ngoại tuyến. Người sử dụng có thể sao lưu các thay đổi, commit trên kho lưu trữ cục bộ (Local repository) mà không cần đến kết nối Internet. Các thay đổi này sẽ được đưa thủ công lên Remote repository khi Internet hoạt động.

Dĩ nhiên, với khả năng như vậy thì việc làm quen sử dụng Git sẽ phức tạp hơn so với các công cụ khác. Tuy nhiên với lợi ích mà nó mang lại thì việc học cách sử dụng thành thạo Git để áp dụng vào công việc là hoàn toàn xứng đáng.

Cài đặt Git

Các bạn có thể tải về Git thông qua Trang chủ chính thức của Git. Git tương thích với hầu hết các hệ điều hành phổ biến hiện nay.

Trong bài viết, tôi sử dụng phiên bản Git dành cho hệ điều hành Windows. Việc cài đặt Git diễn ra nhanh chóng và tương tự như cài đặt các phần mềm hiện nay.

Ngoài ra, có một công cụ làm việc tương tự như Git, nhưng sử dụng giao diện đồ hoạ trực quan trong các thao tác là TortoiseGit. Các bạn có thể tải về và cài đặt tại code.google.com/p/tortoisegit/wiki/Download - 05/09/2015.

Trong bài viết, tôi sẽ sử dụng Git Bash - command line để hướng dẫn các thao tác.

Quy trình làm việc

Quy trình làm việc là rất quan trọng và cần được rèn luyện nhiều nếu người sử dụng muốn thành thạo trong việc sử dụng Git. Quy trình làm việc của Git được biểu diễn bằng sơ đồ sau:

ss_1

Các thành phần trong quy trình

WORKSPACE: Trạng thái làm việc hiện tại. Các thao tác làm thay đổi mã nguồn, thêm hoặc xoá tài nguyên, ... sẽ được lưu trữ ở đây.

INDEX: Trạng thái khi các thay đổi đã được lưu lại (bằng các lệnh add).

LOCAL REPOSITORY: Sau khi lưu lại, bạn thực hiện thao tác commit, đưa toàn bộ mã nguồn vào local repository. Mỗi commit sẽ có 1 tag (nhãn) riêng để có thể phục hồi lại bất cứ lúc nào.

REMOTE REPOSITORY: Bằng thao tác push, toàn bộ mã nguồn sẽ được đưa lên remote repository và có thể chia sẻ với các thành viên khác trong nhóm thông qua Internet.

Các thao tác

Init

Khởi tạo môi trường làm việc cục bộ. Folder phải hoàn toàn trống trước khi thực hiện lệnh init. Cú pháp:

git init

Clone

Khi trên remote server đã có sẵn thư mục và các file mã nguồn, việc cần làm là lấy các thông tin dữ liệu đó về máy tính cá nhân. Lệnh clone sẽ giúp chúng ta thực hiện việc đó.

Cú pháp:

git clone /path-to/repository/

Commit

Sau khi thực hiện xong các thay đổi, chúng ta sẽ đưa các thay đổi này vào Index và sau đó là Local repository. Trước khi commit, chúng ta sẽ sử dụng lệnh add để đưa tất cả vào Index.

Cú pháp:

git add --all

git commit -m "Comment"

Lưu ý: Comment là một chuỗi ký tự đặt trong hai dấu “”. Comment có thể được chia thành nhiều dòng, nhưng vẫn đảm bảo nằm giữa hai dấu “”. Các bạn có thể sử dụng bất kỳ chuỗi ký tự nào để đưa vào Comment, nhưng tôi khuyến khích các bạn nên đưa vào Comment cụ thể những thay đổi đã được thêm vào commit đó. Điều này sẽ giúp việc quản lý được hiệu quả hơn vì ta dễ dàng nắm được tiến độ của dự án, đồng thời dễ dàng quay lại đúng thời điểm nếu cần thiết.

Push

Sau khi commit, các thay đổi sẽ được lưu trữ tại Local repository, chúng ta sử dụng lệnh push để đưa toàn bộ dữ liệu lên Remote repository. Cú pháp như sau:

git push origin branch_name

Trong đó branch_name là tên của nhánh làm việc hiện tại.

Pull

Là hành động kéo dữ liệu từ trên Remote repository về máy tính cá nhân. Chúng ta có thể kéo toàn bộ dữ liệu, hoặc chỉ định một nhánh cụ thể nào đó. Cú pháp:

git pull

Fetch

Khi xảy ra lỗi, nếu ta muốn trở lại commit gần nhất để bắt đầu lại công việc, lệnh fetch sẽ giúp chúng ta thực hiện điều đó. Cú pháp như sau:

git fetch

Một số thao tác khác

Config

Trong trường hợp khởi tạo một môi trường làm việc mới hoàn toàn ở máy cục bộ, khi đưa các thay đổi lên Remote repository, bạn sẽ được yêu cầu khai báo username và email. Cú pháp như sau:

git config --global user.name "Your username"
git config --global user.email "Your email"

Log

Lệnh git log cho phép ta xem lại lịch sử các lần commit trước.

Các lệnh ở trên có thể có một số tuỳ chọn đặc tả riêng cho từng lệnh. Trong giới hạn bài viết tôi chỉ hướng dẫn những gì cơ bản và thông dụng nhất. Bạn đọc có thể tự nghiên cứu thêm để sử dụng một cách hiệu quả nhất.

Kết luận

Trên đây là một số lệnh phổ biến khi làm việc với Git. Ở bài viết sau tôi sẽ đi sâu vào khả năng làm việc phân nhánh của Git để giúp các bạn làm việc với Git hiệu quả hơn.

Lời cảm ơn

Cảm ơn chị Kanzaki Nguyen :: www.stdio.vn/users/index/80/kanzaki-nguyen và các anh chị trong MMLab đã giúp tôi có được điều kiện luyện tập sử dụng thành thạo Git và dễ dàng quản lý các project cá nhân và nhóm.

Tài liệu tham khảo

https://git-scm.com/doc - 03/08/2015.

THẢO LUẬN
ĐÓNG