2012-05-07 43 views
23

Tôi đang sử dụng Git cho Windows (ver. 1.7.8-preview20111206) và mặc dù tôi có tệp .bash_history trong thư mục HOME của mình, nó không bao giờ tự động được cập nhật . Khi tôi bắt đầu Git Bash, tôi có thể thấy trong các lệnh lịch sử mà tôi đã thêm vào tệp .bash_history theo cách thủ công, nhưng nó không được cập nhật tự động..bash_history không cập nhật trong Git cho Windows (git bash)

Tôi đã sử dụng lệnh shopt -s histappend để đảm bảo rằng lịch sử được lưu mỗi khi tôi đóng trình vỏ, nhưng nó không hoạt động.

Nếu tôi sử dụng lệnh history -w theo cách thủ công, thì tệp của tôi được cập nhật, nhưng tôi muốn hiểu tại sao lệnh shopt không hoạt động như tôi hiểu.

Bất cứ ai cũng có thể cho tôi biết tại sao hành vi này lại xảy ra?

Cảm ơn trước

+0

Giá trị của '$ HISTSIZE',' $ HISTFILESIZE' và '$ HISTFILE' là gì? –

+0

$ HISTSIZE là 10000, $ HISTFILESIZE là 10000 và $ HISTFILE là /h/.bash_history. – franmon

Trả lời

30

tôi đặt này trong tôi ~/.bash_profile

PROMPT_COMMAND='history -a' 
+2

Điều này làm việc cho tôi trên Win 7 64-bit. Đã xé tóc ra trong một thời gian vì sẽ không hoạt động - sau đó nhận ra tôi đã tạo ra với dòng kết thúc Windows, mà phá vỡ. Nếu gặp sự cố, hãy kiểm tra kỹ xem bạn đã lưu với dòng cuối Unix bằng trình chỉnh sửa có hỗ trợ điều này hay không - ví dụ: Sổ tay! – psdie

+0

Bạn luôn có thể sử dụng 'vim' ngay cả trên dòng lệnh Git-Bash – Highmastdon

+0

Bạn cũng có thể sử dụng dos2unix để chuyển đổi kết thúc dòng. – Chance

4

Nếu bạn sử dụng git bash cho windows 8, chỉ cần đặt này trong tập tin ~/bash_logout của bạn:

history > .bash_history 

Rõ ràng bạn cần một tập tin ~/.bash_history.

Trân trọng.

+0

Windows 8.1 và GNU bash, phiên bản 3.1.0 (1) -release (i686-pc-msys) - hoạt động! – abrasadera

+2

Vì lý do nào đó, điều này không hiệu quả đối với tôi. Win7 x64. –

+2

@CamiloMartin - xem nhận xét của tôi ở trên về việc đảm bảo bạn đã sử dụng các kết thúc dòng Unix (tôi đã sử dụng .bash_profile). – psdie

18

Như đã nói here, để lưu lịch sử git bash trên Windows, bạn không được đóng thiết bị đầu cuối bằng nút X. Sử dụng lệnh exit để thay thế. Lịch sử của các lệnh sẽ được lưu sau đó bất kể cấu hình được đề cập trong câu trả lời được chấp nhận.

+1

đó là điều tốt để biết, nhưng tôi sẽ khó có thể nhớ được điều đó. – Chance

+0

@Chance may mắn bạn không còn phải nhớ điều này, bởi vì trong các phiên bản mới hơn của Git cho các cửa sổ này là không đúng sự thật. Thử nghiệm với phiên bản 2.9.3 trên win7 và win10. – Superole

+1

@Superole không đúng trên máy của tôi. Tôi có git 2.12.2 cho windows 8.1 (mới nhất cho 04/17) và cách duy nhất để lưu lịch sử mà tôi biết là nhập "thoát" trước khi nhấp vào nút x – Sebastian

Các vấn đề liên quan