Danh sách các command sẽ được cập nhật tùy theo quá trình mày mò. Ghi chú: * Dấu + (nếu có) trước mỗi cmd thể hiện một chuỗi lệnh liên tiếp cần có để thực hiện 1 tác vụ đã nêu. ### Liên quan đến khôi phục lại, xóa 1. Khôi phục lại trạng thái của commit mới nhất, tất cả những thay đổi chưa commit sẽ bị xóa: `$ git reset --hard` 1. Xóa commit mới nhất: `$ git reset --hard HEAD~` 1. Gộp 2 commit mới nhất lại làm 1: `$ git reset --soft HEAD~` +`$ git commit --ammed` -> Xóa dữ liệu commit mới nhất, nhưng vẫn giữ nguyên working-tree, index. -> Ghi đè commit mới vào commit hiện tại. 1. Xóa toàn bộ những file mới chưa được theo dõi: `$ git clean -n` +`$ git clean -f` -> dry run để kiểm tra, sau đó xóa hẳn. ### Liên quan đến nhánh 1. Tạo nhánh mới: `$ git branch myname` 1. Chuyển sang nhánh khác: `$ git checkout myname` 1. Tạo nhánh mới đồng thời chuyển sang nhánh vừa tạo: `$ git checkout -b myname` 1. Xóa nhánh ở local (cần checkout khỏi nhánh trước khi xóa): `$ git branch -d myname` -> soft delete, chỉ xóa được khi nhánh đã được merge `$ git branch -D myname` -> hard delete, xóa ngay cả khi nhánh chưa được merge 1. Xóa nhiều nhánh có prefix ở remote: `git branch -r | awk -F/ '/\/PREFIX/{print $2}'` -> Dry run `git branch -r | awk -F/ '/\/PREFIX/{print $2}' | xargs -I {} git push origin :{}` -> Thực hiện Thay `PREFIX` trong command trên bằng tên nhánh tương ứng. ### Liên quan đến tag 1. Thêm tag: `$ git tag -a tag_name -m tag_message` 2. Thêm tag tại một commit cũ: `$ git tag -a tag_name commit_hash -m tag_message` 3. Xóa tag: `$ git tag -d tag_name` ### Export repository ra file zip `$ git archive --format zip --output /full/path/to/zipfile.zip master`