2013-02-08 28 views
5

Khi tôi sắp xếp lại lớp học trong IntelliJ, git sẽ xóa theo dõi nhật ký cũ của tệp? Có cách nào để cấu trúc lại tập tin để nó giữ nhật ký, hay tôi đang thiếu cái gì đó?Làm thế nào để giữ cho nhật ký thay đổi trong các tệp git khi tái cấu trúc trong IntelliJ?

Tôi đang kiểm tra nhật ký của tệp trong SourceTree, nhưng tôi tưởng tượng nó giống nhau đối với mọi thứ.

+0

Git là hệ thống kiểm soát phiên bản của chính nó. Tại sao bạn cần tái cấu trúc các bản ghi để lưu trữ? – madhead

+0

Vì vậy, khi tôi kiểm tra lịch sử của tập tin, tôi có thể thấy tất cả các thay đổi. Khi tôi làm git mv được nhìn thấy, nhưng khi intelliJ refactors nó không được nhìn thấy – ThanksBro

Trả lời

2

Di chuyển/Đổi tên is handled automatically by Git và nhật ký cần được lưu giữ nếu git phát hiện thấy đó thực sự là một động thái. Việc bạn đổi tên từ IDEA, thiết bị đầu cuối hoặc trình quản lý tệp không quan trọng.

Xem thêm Why does git not "track" renames?comments in the related bug report.

+3

Trong báo cáo lỗi có vẻ như nó hoạt động khi tái cấu trúc trong thiết bị đầu cuối, và nó không hoạt động khi tái cấu trúc trong IntelliJ. Cảm ơn, tôi sẽ tiếp tục Youtrack – ThanksBro

0

Cách tiếp cận này, mặc dù có thể không phải những gì bạn muốn nghe, giúp git phát hiện đổi tên (và cuối cùng hiểu được lịch sử tệp thực) trong một đóng gói khá lớn mà tôi đang thực hiện (đổi tên gói com.something thành com.somethingelse với ~ 300 tệp bên trong it):

  1. Chỉ đổi tên bên ngoài IntelliJ bằng "git mv" ví dụ "git mv MyProject\src\main\java\com\something MyProject\src\main\java\com\somethingelse"
  2. Commit
  3. Do những thay đổi đóng gói lại trong các file nguồn sử dụng một IntelliJ thường xuyên văn bản thay thế - Edit > Find > Replace in path và thay thế tất cả các lần xuất hiện của com.something với com.somethingelse.
  4. Cam kết
Các vấn đề liên quan