Git là gì?
Git là một Hệ thống quản lý phiên bản phân tán, Git là nguồn mở, miễn phí (Mã nguồn: source). Cách làm việc của Git và mục đích chính sử dụng Git mô tả ở hình dưới đây:
Các thuật ngữ:
- Repository (Repo) : Kho - nơi lưu trữ cấu trúc thông tin (database) về dự án phần mềm (các phiên bản : mã nguồn - dữ liệu ...). Respoinsitory chưa trong nó một tập hợp các đối tượng commit. Một tập hợp các tham chiếu tới các đối tượng commit (head).
- Commits: Chứa metadata có thông tin về mọi thứ như tên tác giả, người tải lên (commiter), ngày tải lên, thông tin log...
Mục đích của Git là để quản lý toàn bộ lịch sử phát triển của một dự án, để làm việc nhóm. Để sử dụng Git một cách đơn giản có thể diễn tả trình tự sau.
- Khởi đầu dự án, tạo một Remote Repository (Server Repo).
- Từ các máy trạm copy (tải) Repository về máy (
Clone
). Mỗi máy trạm có thông tin về Tên, email. - Máy trạm khi cần sẽ cập nhật dữ liệu mới lên Server (
comit
-push
). - Tại thời điểm bất kỳ máy trạm có thể cập nhật các sửa đổi mới nhất từ Server (
pull
).
Các Video: Sử dụng Git, GitHub
Tạo Git server
Ở đây dùng một Server CentOS
, giả sử tên miền của server là domain.com
hoặc địa chỉ IP. Trên hệ thống server linux thường là đã cài sẵn Git. Kiểm tra phiên bản bằng gõ lệnh: git --version
. Nếu chưa có cài đặt bằng lệnh sau:
sudo yum upgrade sudo yum install git
Quá trình tạo một Repository Server theo các bước sau:
1) Nên tạo một user riêng để chạy Git nếu chưa có. Giả sử chọn tên user này là gitusername
thì thực hiện lệnh sau để thêm user:
sudo adduser gitusername
Sau đó bạn có thể thiết lập password cho user này bằng lệnh
sudo passwd gitusername
Sau các lệnh này hệ thống đã có user với tên là gitusername
và thư mục mặc định của user này là /home/gitusername/
2) Tạo Respository cho dự án
Chuyển sang thực hiện lệnh với user gitusername và chuyển đến folder /home/gitusername/
su gitusername cd /home/gitusername/
Giả sử dự án này sẽ lựu trữ tại thư mục myproject.git
trong /home/gitusername/
bạn cần tạo thư mục đó và một thư mục .git
lưu trong myproject
.
mkdir myproject.git cd myproject.git/
Giờ bạn đang trong thư mục myproject.git, hay thiết lập nó là một git Respository bằng lệnh sau:
git init --bare #Initialized empty Git repository in /home/gitusername/myproject.git/
Bạn đã tạo thành công Git Repo trên Server, nó sẽ là nơi lưu trữ các phiên bản code dự án của bạn. Giờ Repo của bạn truy cập được qua ssh với địa chỉ theo cấu trúc.
gitusername@domain.com:myproject.git #hoặc gitusername@IP:myproject.git
Lưu ý là máy trạm kết nối đến Repo server bằng kết nối SSH, nên bạn cần đảm bảo user gitusername mới kết nối được bằng SSH. Có thể bạn phải thêm dòng sau vào file : /etc/ssh/sshd_config
AllowUsers git
Nếu Server của bạn cấu hình để kết nối SSH sử dụng ssh public key authentication thì bạn cần tạo public key authentication cho user gitusername
và lưu các key này vào thư mục /home/gitusername/.ssh
và public key về máy trạm để sau này thực hiện kết nối. Xem thêm về SSH public key authentication.
Từ đây bạn có thể sử dụng Repo từ máy trạm rồi.
Sử dụng Git với máy trạm Windows
Để làm việc với Git trên Windows, bạn tải phiên bản thích hợp và cài đặt tại từ link sau: https://git-scm.com/download/win. Sau cài đặt chủ yếu bạn sẽ sử dụng Git Bash
, là giao diện dòng lệnh để làm việc.
Giờ bạy chạy Git Bash
vừa cài đặt. Chú ý nếu lần đầu chạy Git trên Windows bạn cần khai báo Tên và Email trước khi chạy lệnh. Khai báo bằng cách chạy lệnh sau:
git config --global user.name "Tên" git config --global user.email your@example.com
Khởi tạo
Giờ để Repo server thực sự làm việc, phải khởi tạo nó phiên bản đầu tiên (ở đây chỉ trình bày với nhánh master). Từ máy trạm đã cài đặt Git Bash
chạy các lệnh như sau:
cd myproject git init git add . touch initial git add initial git commit -m 'khởi tạo dự án' git remote add origin gitusername@domain.com:myproject.git git push -u origin master # hoặc git push origin master
Như vậy đên đây thư mục myproject trên máy trạm và Repo myproject.git trên server đã đồng bộ với nhau!
Các file mã nguồn bạn thêm, bớt chỉnh sửa trong thư mục myproject. Khi nào cần cập nhật lên Server thì dùng lệnh sau:
git commit -m 'thong tin cap nhat abcdfd dsfd' git add * git commit -a git push origin master
Các máy trạm 2, 3 tiếp theo
Ở một máy khác.Chuyển đến ổ C: và gõ lệnh clone dựa Repo vừa tạo trên server về:
cd c: git clone gitusername@domain.com:myproject.git #warning: You appear to have cloned an empty repository.
Giờ trên ổ C đã có thư mục myproject là clone từ Server. Chuyển vào thư mục dự án cd myproject
và từ đây thi hành cách lệnh git cần thiết của bạn. Tham khảo các lệnh Git ở dưới.
Bất kỳ khi nào cần cập nhật sửa đổi từ Server về Local dùng lệnh git pull
Các lệnh Git cơ bản
Mục đích | Lưu ý | Lệnh Git |
---|---|---|
Định danh bạn là ai trong hệ thống Git | Thiết lập tên và địa chỉ email của bản trong hệ thống Git | git config --global user.name "Tên"
|
Tạo một repository tại local |
git init |
|
Copy một repository | Copy từ một repository từ một reps local |
git clone /path/to/repository |
Copy từ một server Git |
git clone username@host:/path/to/repository |
|
Commit | ||
Commit tất cả các thay đổi |
git commit -a |
|
Push |
Gửi thông tin thay đổi của nhánh Master tới máy chủ |
git push origin master |
Cập nhật | Tải cập nhật | git pull |
Sử dụng GitHub
Nếu không có Server riêng để cài đặt cách trên thì có thể dùng GitHub.com: Nó tương tự Git (nếu đóng phí thì các Repo của bạn là riêng tư - nếu miễn phí thì nó hiện thị công cộng).
Để sử dụng trên Windows đơn giản là đăng ký một tài khoản GitHub, tải phần mềm GitHub cho Windows về và sử dụng: https://desktop.github.com/
Với GitHub rất dễ sử dụng vì là giao diện UI chứ không cần dùng dòng lệnh. GitHub giúp bạn nhan chóng tạo ra một Repo và đưa nó lên Server của GitHub, Clone Repo về máy ...