Cách sử dụng Git cơ bản

Danh sách các bài viết trong chuyên mục Git căn bản, đây là những bài viết mới nhất được cập nhật trong mục Git căn bản.

Khó khăn nhất trong phát triển dự án phần mềm là làm sao để quản lý mã nguồn thật tốt. Ví dụ khi bạn sửa một file vào ngày thứ 2 đầu tuần, vào ngày thứ 3 bạn cũng có một số chỉnh sửa, nhưng sau đó bạn nhận thấy cần phải sử dụng lại code của ngày thứ 2 thì thông thường đó là điều không thể, trừ khi bạn backup lại mã nguồn đó. Vấn đề này sẽ được giải quyết dứt điểm dựa vào Git, một hệ thống quản lý mã nguồn phân tán tốt nhất hiện nay. 

# Git là gì?

Git là một phần mềm, hệ thống quản lý mã nguồn phân tán. Ban đầu Git được phát triển phục vụ cho Linux nhưng bây giờ bạn có thẻ sử dụng được nó trên cả Windows. Với Git bạn có thể lưu lại lịch sử và trạng thái của các file trong dự án, sau đó bạn có thể rollback về một lịch sử bất kì mà không cần phải backup lại.

Git sử dụng mô hình phân tán và điều này hoàn toàn ngược với SVN hoặc CSV, mỗi nơi lưu trữ source ta gọi là 1 repo [repository], các lập trình viên sẽ tạo một repo tại máy của mình. Câu hỏi đặt ra là nếu user nào cũng có repo riêng thì việc đụng độ code khi upload mã nguồn lên repo chính thì sao? Điều này hoàn toàn được giải quyết bởi Git sẽ cảnh báo và giúp các lập trình viên biết có sự đụng độ code [conflick] và sẽ yêu cầu họ chỉnh sửa và thay đổi trạng thái hết đụng độ.

Thông thường ta cần kết hợp với một dịch vụ lưu trữ mã nguồn trực tuyến như Github [repo chính], tại đây các thành viên sẽ dùng lệnh để đẩy dữ liệu từ máy tính của cá nhân họ lên Github, điều này hoàn toàn an toàn và bảo mật bởi mỗi repo của các lập trình viên đều là bản sao thật của repo trên github, vì vậy khi server bị down thì các thành viên vẫn có mã nguồn backup trên máy tính của họ.

# Giới thiệu series học Git

Trong bài này chủ yếu mình muốn giới thiệu với các bạn khái niệm Git là gì, đồng thời cũng chia sẻ những thông tin chi tiết hơn của series này.

Đây là series tự học Git dành cho người mới bắt đầu. Series này sẽ cung cấp cho các bạn kiến thức về cách quản lý mã nguồn trong thực tế thông qua Git, học xong series này mình đảm bảo bạn sẽ tự tin hơn khi đi xin việc bởi hầu hết các công ty tuyển dụng đều đưa Git vào giống như là một kỹ năng cần phải có.

Series cũng có tham khảo một số trang web tiếng Anh khác.

Các dịch vụ Repository Hosting dành cho Git miễn phí tốt nhất dành cho người mới bắt đầu sử dụng cũng như ngươi sử dụng chuyên nghiệp. Với các dịch vụ này, bạn có thể tạo ra các kho chứa riêng tư [private repository].

Các bạn làm việc liên quan đến lập trình đều được nghe rất nhiều về Git hay Github nhưng không hiểu nó là gì, nó thần thánh ra sao, hỗ trợ các bạn trong công việc thế nào. Trong loạt bài viết này mình sẽ hướng dẫn cho các bạn những hiểu biết cơ bản nhất về Git và Github.

Tại sao nên dùng Git/GitHub?

Hầu hết khi hỏi các bạn sinh viên làm bài tập lớn theo nhóm, mỗi bạn code 1 phần vậy khi ghép lại thành 1 project hoàn chỉnh thì sẽ làm như thế nào?

Phần lớn các bạn đều trả lời rằng: "Bọn em sẽ lên thư viện hoặc hẹn nhau ở chỗ nào đó cùng nhau ghép hoặc copy gửi cho nhau" cũng có trường hợp "Có thằng nó gánh team rồi, em chỉ cần làm tài liệu thôi :D"

Thực trạng trên cho thấy rằng đa số các bạn sinh viên mới ra trường, chưa có kinh nghiệm làm việc nhiều nên hầu hết các bạn này rất lúng túng khi làm việc với Git hoặc thậm chí có bạn còn chưa biết Git là gì, chưa biết làm việc với nó như thế nào. Trên quan điểm của mình, việc này không phải lỗi của bạn ấy, chẳng qua các bạn ấy chưa có cơ hội để sử dụng Git, nên chưa tìm hiểu. Nhưng, sẽ là lỗi của các bạn ấy, nếu trong dự án sử dụng Git mà lại không tìm hiểu.

Vừa qua mình cũng có nhận training cho 1 vài bạn thực tập sinh và cũng xảy ra tình trạng tương tự như trên. Vì vậy qua đây mình xin chia sẻ một số hiểu biết của mình [đã từng tìm hiểu và đã từng làm] về Git trong bài viết này với hy vọng sẽ giúp ích được những bạn tự tin khi làm việc với Git cũng như nâng cao kỹ năng của bản thân trên con đường trở thành lập trình viên chuyên nghiệp.

1. 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]. Hiểu nôm na rằng Git là 1 hệ thống giúp cho việc quản lý tài liệu, source code... của 1 nhóm các developer cùng làm chung dự án. Git sẽ ghi nhớ lại toàn bộ lịch sử thay đổi của source code trong dự án. Bạn sửa file nào, thêm dòng code nào, xóa dòng code nào, bỏ thừa dấu ở đâu... tất cả các hành động đều được Git ghi lại. Qua đó giúp dự án có thể điều tra nguyên nhân gây lỗi hệ thống, tổng hợp code trở nên dễ dàng hơn.

2. Hướng dẫn sử dụng Git

Trước khi đi vào sử dụng git ta cần hiểu một số khái niệm liên quan đến Git như sau:

Repository: Repository hiểu đơn giản nó chính là cái kho lưu trữ tất cả những thông tin cần thiết để quản lý các sửa đổi và lịch sử của toàn bộ project. Repository của Git được phân thành 2 loại là remote repository và local repository.

  • Local Repository: là repository nằm trên chính máy tính của chúng ta, repository này sẽ đồng bộ hóa với remote repository bằng các lệnh của git.
  • Remote Repository: là repository được cài đặt trên server chuyên dụng. Ví dụ: GitHub, GitLab, Bitbucket,...

=> GitHub chính là 1 Remote Repository lưu trữ tất cả những thông tin cần thiết để quản lý các sửa đổi và lịch sử của toàn bộ project.

Working tree và Index [hoặc staging area]: Là những thư mục được đặt trong sự quản lý của Git, nơi mọi người thực hiện công việc trên đó, được gọi là working tree. Giữa repository và working tree tồn tại một nơi gọi là index hay staging area . staging area là nơi để chuẩn bị cho việc commit vào repository.

Bắt tay vào cài đặt nào!!!

Để cài đặt Git, các bạn chỉ cần download Git về và Next => Next =>... => Finish là xong [Đối với máy windows]. Chi tiết các bạn có thể tham khảo thêm ở link sau: //git-scm.com/book/en/v2/Getting-Started-Installing-Git

Sau khi cài đặt xong chúng ta bắt tay vào làm thôi. Trong phần 1 này mình sẽ trình bày một số câu lệnh cơ bản, thao tác với local repository trước [chưa cần tạo tài khoản github vội] để chúng ta vừa hiểu lý thuyết lại làm thực hành luôn cho nhớ nha :D

2.1 Lệnh:  git init

Tác dụng : Khởi tạo 1 git repository 1 project mới hoặc đã có.

Cách dùng: Tạo 1 folder mới => vào trong folder đó => click chuột phải chọn Git Bash Here như hình dưới

Cửa sổ console git bash hiện lên => các bạn gõ lệnh git init 

Sau khi tạo thành công thì trong folder sẽ xuất hiện folder .git => folder này sẽ chứa tất cả những thông tin cần thiết để quản lý các sửa đổi và lịch sử của toàn bộ project. Vậy nên nếu muốn xóa file này hãy cân nhắc trước khi xóa nhé :D

2.2 Lệnh : git add

Tác dụng : Thêm thay đổi vào stage/index trong thư mục làm việc.

Cách dùng: Tại thư mục làm việc => git add .

Khi add thành công

2.3 Lệnh: git commit

Tác dụng: commit là một action để Git lưu lại các sự thay đổi trong thư mục làm việc vào repository

Cách dùng: git commit -m " add source nhaaaaaa"

Khi commit thành công

Tạm kết

Vậy là trong phần 1 này mình đã chia sẻ kiến thức cơ bản để sử dụng được git và thực hành tạo local repository với các lệnh cơ bản, trong phần tiếp theo mình sẽ chia sẻ thêm các kiến thức nâng cao về merge, branch, resolve conflict... cũng như cách sử dụng GitHub. Mọi người tiếp tục theo dõi nha

Tài liệu tham khảo: //git-scm.com/doc

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] là một trong những hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay. DVCS nghĩa là hệ thống giúp mỗi máy tính có thể lưu trữ nhiều phiên bản khác nhau của một mã nguồn được nhân bản [clone] từ một kho chứa mã nguồn [repository], mỗi thay đổi vào mã nguồn trên máy tính sẽ có thể ủy thác [commit] rồi đưa lên máy chủ nơi đặt kho chứa chính. Và một máy tính khác [nếu họ có quyền truy cập] cũng có thể clone lại mã nguồn từ kho chứa hoặc clone lại một tập hợp các thay đổi mới nhất trên máy tính kia. Trong Git, thư mục làm việc trên máy tính gọi là Working Tree.

2. Flow cơ bản khi sử dụng Git

Sau đây là flow cơ bản khi bạn sử dụng Git:

  • Clone project từ server về Local Repository
  • Check-out 1 nhánh từ Local Repository về Working Space
  • Bạn sẽ làm việc [thêm, sửa, xoá tại Working Space]
  • Add : xác nhận sự thay đổi của các files [đưa đến vùng Staging Area]
  • Commit: cập nhật sự thay đổi lên Local Repository

Về cơ bản đến đây là bạn đã hoàn thành 1 chu trình sử dụng Git. Lúc này, nếu như bạn muốn cập nhật sự thay đổi này lên server thì bạn sẽ dùng lệnh push để đẩy chúng lên server.

3. Những câu lệnh cơ bản thường sử dụng

Thiết lập chứng thực cá nhân

$ git config --global user.name "User Name" $ git config --global user.email "[email protected]"

Lưu ý: --global được sử dụng để áp dụng cho tất cả các projects. Nếu bạn ko sử dụng --global thì settings sẽ chỉ dùng cho riêng project đó.

Tạo một kho chứa Git

$ git init

Nếu như bạn muốn theo dõi một dự án cũ trong Git, bạn cần ở trong thư mục của dự án đó. Lệnh này sẽ tạo một thư mục mới có tên .git, thư mục này chứa tất cả các tập tin cần thiết cho kho chứa.

Sao chép một kho chứa đã tồn tại

$ git clone //github.com/user/repository.git

Câu lệnh trên sẽ tạo một thư mục mới có tên giống trên của repo.

Nhánh trong git

Khi sử dụng Git, bạn có thể tạo ra nhiều nhánh [branch] khác nhau. Câu lệnh Git này dùng để kiểm tra branch hiện tại:

$ git branch

Để tạo mới một branch:

$ git branch

Để chuyển và tạo mới:

$ git branch -b

Chuyển nhánh

Trước khi muốn thay đổi source code, điều đầu tiên mà bạn cần phải làm là checkout một nhánh. Để checkout một nhánh, bạn dùng câu lệnh Git sau:

$ git checkout

Cập nhật thay đổi

Sau khi bạn thay đổi source code: thêm mới, sửa, xoá files,… Bạn cần phải cập nhật lên Staging Area. Để cập nhật hết các files:

$ git add .

Sau lệnh add, bạn cần sử dụng câu lệnh Commit để đây thông tin thay đổi lên Local Respository:

$ git commit -m "Message"

Cập nhật lên server

Sau câu lệnh Commit, thông tin mới chỉ được cập nhật lên Local Repository. Nếu muốn cập nhật lên server thì bạn phải sử dụng câu lệnh push:

$ git push origin

Ngoài ra, nếu chưa tồn tại remote trên server thì bạn cần phải add mới một remote trước rồi mới push:

$ git remote add origin $ git push origin

Gộp nhánh

Sau một thời gian cập nhật các file và push lên git trên branch mới, bây giờ mình cần ghép [merge] code lại vào nhánh gốc [master]. Trước tiên, cần phải checkout ra khỏi branch hiện tại cần gộp để vào branch master, sau đó thì dùng lệnh merge để ghép branch mới vào master:

$ git checkout master $ git merge

Xem lại lịch sử commit

$ git log

Lệnh git log sẽ cho bạn biết về người commit, ngày giờ, message của những lần commit đó.

Xem thay đổi trước khi push

$ git diff

Lệnh này giúp bạn biết những gì đã được thay đổi giữa nhánh hiện tại và nhánh trước nó.

Gộp commit

$ git rebase -i HEAD~

Sau dấu ~ là số commit bạn muốn gộp. Sau khi gõ lệnh này một cửa sổ trình soạn thảo hiện ra. Thay đổi ký tự pick của dòng các dòng sau dòng đầu thành s rồi lưu lại/kết thúc. Khi đó, trình soạn thảo để chỉnh sửa giải thích commit thiết lập cho commit sau khi đã tổng hợp sẽ được hiển thị, nên hãy chỉnh sửa lưu lại/kết thúc.

Pull từ remote repository

$ git pull origin master

Lệnh trên sẽ gộp những thay đổi mới kéo về từ máy chủ từ xa với nhánh hiện tại trên máy local.

Tổng kết

Trong bài viết này mình đã giới thiệu khái quát về Git và đưa ra những câu lệnh cơ bản mà bạn thường xuyên phải dùng nó. Mình mong bài viết này có thể giúp ích cho các bạn mới bắt đầu sử dụng git có thể tham khảo, hiểu được một phần nào đó về git và vận dụng tốt vào việc sử dụng của các bạn. Tiếp theo, mình sẽ giới thiệu một số trường hợp gặp phải khi sử dụng git Một số trường hợp trong git

Video liên quan

Chủ Đề