2012-12-06 41 views
13

Tôi đang sử dụng git-emacs để gửi mã tới github throug Emacs. Nó là ok cho addcommit, nhưng có vẻ như git-emacs không hỗ trợ hoạt động git push. Khi tôi nhập M-x git-push, nó phản hồi "không có lệnh như vậy".Làm thế nào để git push bằng git-emacs?

+0

Bạn có thể chạy 'git push' trong' eshell'. – ceving

Trả lời

8

Bạn nói đúng, không. Tuy nhiên, magit có thể đẩy.

+1

vì vậy tôi chuyển sang magit, nhưng tôi vẫn không thể đẩy, nó là ok để giai đoạn và cam kết, nhưng khi tôi gõ PP để làm một git push, nó chỉ nói: "git push -v ......" trong giao diện điều khiển, nó đã không thực sự đẩy bất cứ điều gì vào kho lưu trữ, bạn có thể giúp đỡ với điều này cũng? – zolibra

+0

Có vấn đề với github: https://github.com/magit/magit/pull/433 Kiểm tra bằng cách nhấn '$' xem liệu Magit có bị treo khi đăng nhập hay không. Cập nhật Magit mới nhất, và nếu điều này không giúp được - thì việc đẩy mạnh chỉ là một vài thao tác gõ phím trong vỏ ... – lukstafi

1

Đây là một tác dụng phụ không may của thực tế hỗ trợ VCS Emacs tích hợp (vc-mode) chủ yếu được xây dựng cho các công cụ như cv, subversion, v.v ... có quy trình làm việc hoàn toàn khác. Hỗ trợ DVCS đã được bổ sung khá sớm (trong Emacs 23). Tôi hy vọng vc-mode sẽ được cải thiện trong tương lai gần. Cho đến lúc đó ...

Như @khagler cho biết Magit hỗ trợ git push. Một tùy chọn vững chắc khác để bạn khám phá là Egg.

0

By git-emacs, bạn có thể đẩy theo cách sau:

  1. M-x git-cmd, đó là ràng buộc để C-x g . (Trong git-status cửa sổ nó là ràng buộc để .)
  2. push
6

Phiên bản mới hơn của Emac cung cấp lệnh:

C-x v P 

phiên bản dài hơn:

M-x vc-push 

(như được ghi chú bởi @ CAT0). Nếu phiên bản của Emacs không hỗ trợ lệnh đó, hãy thử:

M-& git push [Enter] 

còn phiên bản:

M-x async-shell-command [Enter] git push [Enter] 

Như đã chỉ ra bởi @mariotomo này là tốt hơn so với phiên bản đồng bộ dưới đây vì nó sẽ mở ra một bộ đệm cho đầu ra. phiên bản

M-! git push [Enter] 

còn:

M-x shell-command [Enter] git push [Enter] 

(M- là viết tắt của "chìa khóa Meta" mà có thể Esc hoặc Alt hoặc Ctrl+[).

(và nếu bạn đang sử dụng Windows và do dự sử dụng vỏ đi vào vỏ DOS khó chịu theo mặc định, hãy thử chạy Emacs dưới dạng emacs-w32 từ Cygwin, mọi thứ sẽ tốt hơn).

+1

thậm chí tốt hơn, sử dụng 'M- & 'để emacs sẽ không bị mắc kẹt chờ đợi git để hoàn thành và một bộ đệm sẽ xuất hiện với đầu ra của lệnh. – mariotomo

2

Trong emacs 25 (có lẽ cũng sớm) có lệnh

vc đẩy

mà thực hiện chính xác những gì nó cần.Nó được ràng buộc để C-x v P