Git Tips

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 [email protected]: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 [email protected]: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 đã có.
git tag -n #Hiển thị danh sách các Tag đã có và 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]

Đăng ký nhận bản tin!

Tôi sẽ gửi một email cho bạn khi tôi tạo ra một cái gì đó mới. Tôi sẽ không bao giờ gửi thư rác cho bạn 🙅‍♂️! và bạn có thể hủy đăng ký bất kỳ lúc nào.