Ghi chú các command thường sử dụng trong Git
- Details
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`