2013-08-20 44 views
83

Tôi đang sử dụng bộ lọc cho các tệp tin trong quá trình thanh toán như được mô tả here. Bây giờ vấn đề là định nghĩa bộ lọc chỉ được lưu trữ trong tập tin cấu hình địa phương của tôi:Lưu trữ cấu hình git như một phần của kho lưu trữ

$ cat .git/config 
.... 
[filter "dater"] 
     smudge = /home/.../expand_date 
     clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\" 

Nếu đồng nghiệp của tôi muốn hưởng lợi từ Date mở rộng này, họ cần phải sao chép định nghĩa bộ lọc của tôi. Và nếu tôi thay đổi, tôi cần phải thông báo cho họ, v.v.

Vì vậy, tôi có thể lưu trữ phần định nghĩa bộ lọc này là .git/config trong kho và sử dụng git?

Trả lời

85

Có 3 phạm vi được hỗ trợ là .gitconfig tệp: --system, --global, --local. Bạn cũng có thể tạo một tệp cấu hình tùy chỉnh và đưa nó vào một trong các tệp được hỗ trợ.

Đối với nhu cầu của bạn tùy chỉnh - là lựa chọn đúng. Thay vì viết bộ lọc của bạn trong .git/config bạn nên lưu nó trong .gitconfig tập tin trong thư mục gốc kho của bạn:

your-repo/ 
│ 
├── .git/ 
│ ├── config 
│ 
├── .gitconfig 
│ 

Tạo .gitconfig với bộ lọc của bạn và cam kết những thay đổi. Sau đó, các đồng nghiệp của bạn sẽ luôn cập nhật nó - nhưng họ sẽ phải bao gồm nó theo cách thủ công. Không thể tự động bao gồm tệp cấu hình tùy chỉnh của bạn thông qua git một mình, vì nó tạo ra lỗ hổng bảo mật.

Để áp dụng cấu hình này cho một kho lưu trữ duy nhất, mỗi người dùng sẽ cần phải chạy lệnh sau trong your-repo/:

git config --local include.path ../.gitconfig 

Hãy cẩn thận không để lưu trữ dữ liệu cá nhân trong phong tục .gitconfig, như user.*, giữ những người trong toàn cầu của bạn .gitconfig.

+14

Tôi muốn tránh thông báo cho mỗi người dùng có thể mà nó cần phải bao gồm '.gitconfig' repo trong mình '~/.gitconfig'. Không ai sẽ nhớ nó. Có cách nào để làm cho git ALWAYS đọc '.gitconfig' của repo không. –

+6

@ZaarHai: Tôi đoán không, bởi vì điều đó sẽ nguy hiểm. (Hãy tưởng tượng nhân bản một repo mà bí danh lệnh với một cái gì đó "thú vị", ví dụ như. Xuất khẩu các nội dung của thư mục nhà của bạn). Nếu bạn đã có một cái gì đó giống như một kịch bản 'cấu hình' hoặc tương tự mà người dùng phải chạy, bạn có thể có thiết lập bao gồm (hoặc nhắc người dùng). – Hasturkun

+1

Làm thế nào để bạn yêu cầu git sử dụng tệp .gitconfig của chính repo? Tôi đã tạo một tài khoản nhưng không được phân tích cú pháp. –

11

Bạn không thể sử dụng .gitconfig tệp trong kho lưu trữ git theo mặc định, nhưng bạn có thể liên kết với nó để cấu hình git sẽ được phiên bản.

Bạn có thể liên kết với nó như thế:

[include] 
    path = ../.gitconfig 

tôi đã tạo ra một kịch bản đơn giảngitconfig.sh mà làm điều đó cho bạn (nhanh hơn so với bản sao nhiều) + .gitconfig tập tin đơn giản vì vậy nếu bạn muốn, phải mất một nhìn vào repo này https://github.com/HoBi/dotfiles.


EDIT: Tôi đã xóa các tập tin, nhưng bạn có thể tìm thấy nó ở đây https://github.com/HoBi/dotfiles/blob/7e4376c006c508370b82bc7bd37173fab51dbd01/git/.gitconfig.sh

+1

Liên kết của bạn đã chết ... – Sebastian

+0

@XmlmXmlmX đã được sửa. :-) – HoBi

+0

@HoBi có vẻ như bạn đã xóa gitconfig.sh của mình khỏi GitHub, bất kỳ lý do gì khiến bạn không còn muốn nó nữa? –

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