Trình tạo lệnh Git

Tiếp theo

Mọi lập trình viên đều đã ít nhất hai lần tìm trên Google “làm sao để hoàn tác commit cuối cùng”. Thay vì phải đoán giữa reset --soft, reset --mixedreset --hard, hãy chọn tác vụ từ danh sách và trình tạo sẽ in ra lệnh chính xác, đã điền sẵn nhánh, SHA của commit hoặc tên thẻ của bạn.

Cách tạo một lệnh Git

  1. 1

    Chọn tác vụ

    Hoàn tác commit cuối cùng, sửa thông điệp, rebase lên main, cherry-pick, ép reset về remote, gắn thẻ một bản phát hành…

  2. 2

    Điền các tham số

    Tên nhánh, SHA của commit, thẻ, chỉ những trường mà mỗi tác vụ cần.

  3. 3

    Đọc lệnh

    Công cụ ghép các flag đúng theo đúng thứ tự.

  4. 4

    Sao chép và chạy

    Dán vào terminal của bạn; lệnh là một dòng dùng ngay được, không phải mã giả.

Các tác vụ được hỗ trợ

Tác vụ Lệnh được tạo ra
Hoàn tác commit cuối cùng (giữ staged) git reset --soft HEAD~1
Sửa thông điệp của commit cuối cùng git commit --amend -m "…"
Loại bỏ mọi thay đổi chưa commit git restore . + git clean -fd
Tạo và chuyển sang nhánh mới git checkout -b feature/x
Xóa nhánh ở local và remote git branch -d x + git push origin --delete x
Đồng bộ nhánh feature với main git fetch origin + git rebase origin/main
Cherry-pick một commit git cherry-pick <sha>
Revert một commit (an toàn) git revert <sha>
Gắn thẻ và push một bản phát hành git tag -a v1.0.0 -m "…" + git push origin v1.0.0
Ép reset local về remote git fetch origin + git reset --hard origin/main

Lệnh được đánh dấu an toàn hay phá hủy

  • An toàn (có thể hoàn lại): commit, switch, checkout -b, revert, tag.
  • Phá hủy cây làm việc cục bộ: restore ., clean -fd, reset --hard.
  • Phá hủy lịch sử dùng chung: push --force, filter-repo, rebase trên các nhánh người khác đang dùng.

Mẹo: chạy thử các lệnh rủi ro

Trước git clean -fd, hãy chạy git clean -nd, flag -n in ra những gì sẽ bị xóa mà không xóa thật. Ý tưởng tương tự cho git rm: đọc git status trước.

Câu hỏi thường gặp

Vì “hoàn tác” mang nhiều ý nghĩa khác nhau. reset --soft HEAD~1 giữ các thay đổi của bạn ở trạng thái staged để bạn có thể commit lại; --mixed bỏ chúng khỏi staging; --hard xóa chúng đi. Trình tạo cho phép bạn chọn ý định thay vì phải nhớ các flag.

revert tạo một commit mới hoàn tác một commit cũ, an toàn trên nhánh dùng chung vì lịch sử được giữ nguyên. reset tua con trỏ nhánh lùi lại, làm thay đổi lịch sử và cần push ép nếu nhánh được dùng chung.

Có, cho tác vụ “xóa một tệp khỏi toàn bộ lịch sử”. Nó an toàn và nhanh hơn filter-branch đã lỗi thời; bạn phải cài đặt riêng (brew install git-filter-repo hoặc qua pip).

Không. Nó chỉ in ra lệnh, việc chạy luôn là quyết định của bạn, để bạn có thể xem lại các flag và ngữ cảnh trước khi động vào repo.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác