Làm thế nào tôi có thể làm cho git thực hiện đề xuất "ý bạn là"?


120

Tôi gõ

git puhs

Và git nói:

kristian@office:~/myrepo$ git puhs
git: 'puhs' is not a git command. See 'git --help'

Did you mean this?
      push

Cài đặt cấu hình để làm cho git chỉ thực hiện lệnh được đề xuất nếu nó chỉ có một đề xuất là gì?

Câu trả lời:


150

Theo git-config (1) , bạn muốn thiết lập help.autocorrectmột cách thích hợp. Ví dụ: git config --global help.autocorrect 5sẽ làm cho nó đợi nửa giây trước khi chạy lệnh để bạn có thể xem thông báo trước.


27
Nếu bạn đặt nó thành một số âm, nó sẽ thực hiện trực tiếp.
Alper,

8
Có cách nào để tạo dấu nhắc git trước khi sửa, tương tự như zsh không? (ví dụ: "sửa 'puhs' thành 'push' [yn]?")
Achal Dave

4
@AchalDave Có thể có, nếu bạn viết mã để làm điều đó và gửi bản vá / nhánh cho gitmọi người để nó được chấp nhận vào cơ sở mã. Hiện tại, nó không hoạt động theo cách đó ...
twalberg

1
Điều này dường như hoạt động vì có chính xác một lệnh ứng viên. Ví dụ: git statkhông làm gì cả sau khi sử dụng đề xuất của bạn vì nó có nhiều ứng cử viên. Bất kỳ gợi ý về cách làm cho nó chọn cái đầu tiên?
gokul_uf

25

Tính năng tự động sửa rất hay, nhưng bản thân OCD của tôi cần kiểm soát nhiều hơn một chút đối với những gì đang xảy ra. Vì vậy, tôi đã viết một kịch bản đơn giản chỉ chọn gợi ý đầu tiên do git cung cấp. Bạn chạy tập lệnh sau khi lệnh bị lỗi và sử dụng cú pháp thay thế lịch sử bash "bang bang" được tích hợp sẵn. Ngoài ra, nếu bạn đang nhập nội dung nào đó có thể có nhiều hơn một lệnh, lệnh này cho phép bạn chọn một lệnh khác với tùy chọn đầu tiên.

Nó sẽ trông giống như thế này,

kristian@office:~/myrepo$ git puhs
git: 'puhs' is not a git command. See 'git --help'

Did you mean this?
      push

kristian@office:~/myrepo$ idid !!
Counting objects: 18, done.
Delta compression using up to 32 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 1.17 KiB, done.
Total 10 (delta 6), reused 0 (delta 0)

Ngoài ra, thật thú vị khi nhập bất kỳ thứ gì có hai dấu chấm than. Vì vậy, tiền thưởng cho điều đó.

Đây là ý chính với kịch bản của tôi


1
Thành thật mà nói, gõ git pushnhanh hơn gõ phím idid !!. Nhưng trong các trường hợp khác, script này sẽ hữu ích :)
theonlygusti

18

Thay thế cho help.autocorrect: nếu bạn luôn mắc những lỗi chính tả giống nhau, bạn có thể tạo bí danh cho chúng trong tệp .gitconfig của mình

[alias]
    puhs = push

(Tôi cũng làm điều này với bí danh shell, nơi tôi dường như không bao giờ có thể gõ mkae^H^H^H^Hmakechính xác.)


17

Cũng hãy xem thefuck

Nó có thể sửa lỗi chính tả và cũng thực hiện các đề xuất. Không chỉ giới hạn ở git.


Tôi đã sử dụng fucklệnh được 2 năm nay, nó đã trở thành một trong những sửa đổi thiết bị đầu cuối "không thể sống thiếu nó" của tôi !!
Noah Sussman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.