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ụ:
Chạy lệnhgit submodule add https://github.com/vidu/abc.git themes/abc
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à fetch
và checkout
như sau:
git fetch origin 'refs/tags/*:refs/tags/*'
git checkout tags/[YOUR_TAG_NAME] -b [YOUR_TAG_NAME]