Lưới an toàn Git (git-safety-net)
Kỹ năng pháp y Git: khôi phục commit/nhánh/stash đã mất, chứng minh bằng nội dung rằng nhánh đã merge, rồi dọn dẹp an toàn.
Lập trìnhTrung cấp★ 1,323⑂ 212Điểm AI 9/10Cập nhật lần cuối: 8 thg 8, 2026
Làm được gì
- Khôi phục (Mode A): đi theo thang
git reflog→git fsck --danglingđể tìm commit/nhánh/stash biến mất và cứu chúng sang nhánhrescue/mới. - Kiểm toán & bảo tồn (Mode B): quét toàn máy để tìm mọi bản checkout của cùng repo — kể cả bản
git cloneđộc lập mà không lệnh git nào trong repo nhìn thấy — rồi kiểm tra commit chưa push, worktree bẩn, stash và dangling commit. Ghim ref, xuất patch và copy tay các file untracked (bundle/archive không với tới được chúng). - Xác minh merge (Mode C): bỏ qua ảo giác "173 commits ahead", dùng trial merge
git merge-treeđể kết luận nội dung đã nằm trên base hay chưa. - Phòng ngừa (Mode D): commit rồi mới switch thay vì stash/clone thứ hai, push nhánh WIP sớm, dùng
git branch -fthay choreset --hardtrong cây làm việc dùng chung. - Nghỉ hưu an toàn (Mode E): phân loại worktree/stash/nhánh/clone bằng bằng chứng nội dung, sao lưu có kiểm chứng, rồi mới xoá theo thứ tự an toàn.
Cả 5 script đi kèm chỉ đọc hoặc thêm ref, không bao giờ reset, push, stash drop, branch -d hay gc.
Phù hợp với ai
- Lập trình viên từng hoảng vì mất việc sau rebase/squash-merge
- Người có hàng đống nhánh, stash, worktree cũ nhưng không dám xoá
- Nhóm dùng nhiều phiên/agent song song trên cùng một working tree
- Tech lead cần bằng chứng "không mất gì" trước khi gộp tất cả về một nhánh main
Ví dụ sử dụng
- "Tôi vừa
reset --hard, commit bay mất rồi" → tìm vị trí HEAD cũ trong reflog,git switch -c rescue/feature <sha>để lấy lại. - "Xoá thư mục clone cũ này được chưa?" → quét mọi checkout, copy file untracked, tạo
uncommitted.diffvà bundle đã verify, chỉrm -rfkhi các file backup thực sự tồn tại. - "Đống nhánh này merge hết rồi đúng không?" → dùng
merge-treecho verdict MERGED/UNMERGED theo nội dung; nhánh nào không chứng minh được thì giữ lại để review.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/daymade/claude-code-skills/HEAD/git-safety-net/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục git-safety-net từ repo GitHub daymade/claude-code-skills vào ~/.claude/skills/git-safety-net/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/daymade/claude-code-skills.git /tmp/claude-code-skills && mkdir -p ~/.claude/skills && cp -r /tmp/claude-code-skills/git-safety-net ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal và clone kho về thư mục tạm:
git clone https://github.com/daymade/claude-code-skills.git /tmp/claude-code-skills - Tạo thư mục skills nếu chưa có:
mkdir -p ~/.claude/skills - Chép riêng kỹ năng này:
cp -r /tmp/claude-code-skills/git-safety-net ~/.claude/skills/ - Cấp quyền chạy cho script:
chmod +x ~/.claude/skills/git-safety-net/scripts/*.sh - Khởi động lại Claude Code, vào thư mục gốc của repo cần kiểm tra và nói: "kiểm tra xem tôi có mất việc gì không" hoặc "nhánh này xoá được chưa".
- Hãy chạy Mode B (kiểm toán, chỉ đọc) trước; chỉ phê duyệt bước xoá của Mode E sau khi tự mắt xem kết quả kiểm tra bản sao lưu.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT