Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS), nó giúp theo dõi sự thay đổi của các file trên máy tính và điều phối công việc trên các file đó với nhiều người.
Cơ bản về Git
Git là gì
-
Git không nhất thiết phải lưu trữ tất cả các phiên bản của dự án trên Server. Thay vào đó, mọi người dùng sao chép (clone) một bản sao của kho lưu trữ (repository) và có toàn bộ lịch sử của dự án trên máy tính của họ. Bản sao này có dữ liệu của bản gốc được lưu trữ trên server hoặc lưu trữ qua một bên thứ ba như Github.
-
Git giúp bạn theo dõi những thay đổi thực hiện đối với mã code của mình. Về cơ bản nó là một tag lịch sử cho trình soạn thảo của bạn. Nếu tại bất kỳ thời điểm nào, bạn gặp lỗi nghiêm trọng và không biết nguyên nhân gây ra lỗi, bạn luôn có thể trở lại trạng thái hoạt động ổn định nhất trước đó. Chính vì vậy nó thực sự hữu ích cho việc gỡ lỗi hoặc đơn giản bạn có thể chỉ cần xem những thay đổi nào bạn đã thực hiện đối với mã code của mình theo thời gian.
-
Git giúp đồng bộ mã code giữa nhiều người. Vì vậy, giả sử bạn đang làm việc nhóm, các bạn đều đang làm việc trên các file giống nhau. Lúc này, Git nhận re những thay đổi mà nhóm của bạn đã thực hiện một cách độc lập và hợp nhất (merge) chúng lại vào một kho lưu trữ master. Vì vậy, bằng cách sử dụng Git, bạn có thể đảm bảo rằng các bên đều làm việc ở phiên bản mới nhất của kho lưu trữ. Vì vậy, bạn không cần phải lo lắng về việc gửi các file của mình qua mail cho nhau và có thể làm việc với số lượng lớn các bản sao của dự án gốc.
Cài đặt Git trên máy tính Linux
Git có thể dễ dàng cài đặt trên các hệ điều hành khác nhau như Windows, MacOS hay Linux. Trong nội dung bài hướng dẫn này, ta chỉ làm việc trên hệ điều hành Linux.
# install newest version
sudo apt install git-all
# check git version
git --version
Sau khi cài đặt Git thành công, cần định danh cho git local trên máy tính của bạn
git config --global user.name "YOUR_USERNAME"
git config --global user.email "YOUR_EMAIL"
git config --global --list
Các lệnh git cơ bản
git init
Bạn đang xây dựng 1 dự án nhưng lúc này bạn muốn dự án đó hoạt động trong môi trường Git, bạn có thể cài đặt Git vào dự án của bạn ngay lập tức bằng lệnh
# goto project
cd project
git init
git clone
Tạo 1 Folder để chứa mã nguồn và truy cập vào folder mới khởi tạo, sử dụng git clone để clone dự án
# create folder
mkdir -p project
# goto folder
cd project
# clone project
git clone https://github.com/<git_project>
Ở đây chúng ta đang clone theo định dạng https, đối với định dạng này, chúng ta không cần phải nhập mật khẩu khi clone dự án. Ngoài ra, Git còn hỗ trợ một định dạng khác là ssh, chúng ta sẽ tìm hiểu ở bài sau.
git status
git status dùng để liệt kê tất cả những thay đổi trong quá trình làm việc của bạn, sau lần commit cuối cùng
git status
git add
git add dùng để thêm 1 hoặc nhiều file trong thư mục làm việc vào phân vùng staging
# add 1 file
git add link_file
# add many file
git add link_file1 link_file2 ...
# add all file
git add .
git commit
git commit dùng để thêm tất các các file trong phân vùng staging kho lưu trự cục bộ local repository
git add -m "commit_name"
Tên của commit nên được đặt với mục đích gợi nhớ về những thay đổi trước đó, để dễ dàng quay lại đúng commit khi xảy ra sự cố. |
git push
git push được dùng dể thêm tất cả các file đã commit ở kho lưu trữ cục bộ local repository vào kho lưu trữ từ xa remote repository. Vì vậy, trong kho lưu trữ từ xa, tất cả các file và các thay đổi sẽ hiển thị cho bất kỳ ai có quyền truy cập vào kho lưu trữ từ xa.
# syntax
git push remote branch
# example: remote = origin, branch = master
git push origin master
Đối với branch là master, bạn phải là người quản lý dự án mới được quyền push trực tiếp lên nhánh này. |
Ngoài ra, bạn có thể push tất cả các nhánh trên máy tính của bạn lên git bằng lệnh
git push origin --all
git fetch và git merge
git fetch được sử dụng để lấy các file từ kho lưu trữ từ xa về kho lưu trữ cục bộ nhưng không vào thư mục làm việc
# fetch all brach of remote origin
git fetch origin
#or
git fetch --all
# fetch all brach of remote origin, branch master
git fetch origin master
git merge dùng để đưa các tệp từ kho lưu trữ cục bộ vào thư mục làm việc
git merge master
git pull
git pull dùng để lấy các tệp từ kho lưu trữ từ xa trực tiếp vào thư mục làm việc. Nó tương đương với một git fetch và một git merge.
# example
git pull origin master
This is a comment icon
And a file icon
And a battery icon