updated July 05, 2024123 views

Git là một công cụ kiểm soát phiên bản phân tán (Distributed Version Control System – DVCS) phổ biến nhất hiện nay.Git ghi lại các thay đổi đối với tệp hoặc nhiều tệp theo thời gian để bạn có thể gọi lại các phiên bản cụ thể sau này.

Các thiết lập Git

git config --global user.name <username> #Thiết lập tên người dùng

git config --global user.email <mailaddress> #Thiết lập địa chỉ email

git config color.ui true #Màu cho kết quả trả về

git config --global --list #Hiển thị danh sách đã thiết lập

Git clone

git clone git@github.com:your-username/your-repo.git     #Sử dụng SSH

git clone https://github.com/your-username/your-repo.git #Sử dụng HTTPS

Upload Repository

cd your-directory

git init

git remote add origin git@github.com:your-username/your-repo.git

git add .

git commit -am "Message"

git push -u origin master

Git submodules

Giả sử bạn có 2 repo trên github với tên là project1 và project2. Git submodule cho phép chúng ta sử dụng project2 làm submodule cho project1. Đại loại là project2 là 1 thư mục trong project1. Bạn có thể tham khảo thêm cách sử dụng Git Submodule.

Thêm module

git submodule add <repository> [<path>]
  • repository - địa chỉ của repo cần lấy về
  • path - đường dẫn lưu repo. Nếu ta không chỉ định đường dẫn thì repo sẽ được lưu vào thư mục có tên giống với tên repo.
  • Ví dụ:
    git submodule add https://github.com/vidu/abc.git themes/abc
    
    Chạy lệnh git status để kiểm tra những thay đổi trong thư mục khi chạy lệnh trên. Lúc này, ta sẽ thấy một file có tên .gitmodules được tạo ra, nó là file chứa các thông tin của các module được đưa vào dự án của ta. Mở file .gitmodules ta sẽ thấy nội dung như sau:
    [submodule "abc"]
    
          path = abc
    
          url = https://github.com/vidu/abc.git
    

Cập nhập module

Khi cần cập nhập module, ta dùng lệnh:

git submodule update [--init]

Lựa chọn --init sẽ cho phép ta cập nhập các module chưa được lấy về. Ví như ở máy tính của bạn, bạn chạy lệnh add để lấy repo về rồi, thì không cần --init nữa. Còn ở các máy tính khác, repo chưa được lấy về, thì ta cần phải thêm lựa chọn này.

Xoá module

Với các repo không cần nữa, ta có thể xoá bỏ nó đi bằng lệnh:

git rm <path> #Ví dụ: git rm themes/abc

Thao tác Tag

git tag #Hiển thị danh sách các Tag đã .

git tag -n #Hiển thị danh sách các Tag đã   các chú thích.

git tag <tagname> #Tạo tag

git tag -a <tagname> #Tạo tag kèm theo chú thích

git tag -d <tagname> #Xóa một Tag

Clone Tag

Khi chạy lệnh git clone thì bạn chỉ tải được branch mặt định là master. Để tải riêng từng tag thì ta cần phải fetch toàn bộ tags về và checkout tạo branch mới với tag tương ứng:

git fetch origin 'refs/tags/*:refs/tags/*'

Sau khi chạy lệnh trên, ta có thể kiểm tra lại các tags hiện có bằng lệnh

git tag -l

Tiếp theo checkout để lấy mã nguồn của tag mong muốn

git checkout tags/[YOUR_TAG_NAME] -b [YOUR_TAG_NAME]

Tóm lại ta có 2 lệnh chính là fetchcheckout như sau:

git fetch origin 'refs/tags/*:refs/tags/*'

git checkout tags/[YOUR_TAG_NAME] -b [YOUR_TAG_NAME]