Git và GitHub

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:

git

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 (comitpush).
  • 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"

git config --global user.email your@example.com

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 ...

 

 


Đăng ký nhận bài viết mới