2015-09-09 15 views
12

Tôi đã tạo tệp .gitignore_global và lưu tệp vào thư mục chứa tệp .gitconfig..gitignore_global không hoạt động, ngay cả .gitconfig hiển thị .gitignore_global

Sau đó, tôi đã sử dụng lệnh này.

git config --global core.excludefile .gitignore_global 

sau đó tôi kiểm tra tập tin .gitconfig của tôi bằng cách sử dụng lệnh

cat .gitconfig 

Nó chỉ cho tôi kết quả như

[user] 
     email = [email protected] 
     name = Hemant Parihar 
[gui] 
     recentrepo = C:/Users/heman/gitprojects 
     recentrepo = E:/Inspiration/developerquery 
[filter "lfs"] 
     clean = git-lfs clean %f 
     smudge = git-lfs smudge %f 
     required = true 
[core] 
     excludesfile = .gitignore_global 

Nó rõ ràng cho thấy tôi trong [lõi] phần, có là .gitignore file. Nhưng trong kho dự án của tôi, tôi đã tạo một tệp cần được bỏ qua khi tôi định cấu hình .gitignore_global. Nhưng điều đó không nên xảy ra. Nhưng khi tôi sử dụng tệp .gitignore cục bộ cho dự án của tôi, nó hoạt động tốt và bỏ qua các tệp không được theo dõi.

thư mục kho lưu trữ dự án của tôi là E:/Inspiration/máy chủ/explore_california khi .gitignore_global là trong thư mục chính của tôi (nơi tập .gitconfig là hiện tại.).

Tôi đã kiểm tra this link nhưng tôi không tìm thấy bất kỳ thứ gì hữu ích.

+0

Bất kỳ lý do cụ thể nào để không sử dụng tệp .gitignore cục bộ? –

+0

Tôi chỉ muốn gán quy tắc này cho tất cả kho lưu trữ của mình. Ngoài ra khi tôi sử dụng tập tin .gitignore địa phương nó hoạt động rất tốt. –

+0

Mặc dù vậy không phải là một ý tưởng tốt cho tinh thần đồng đội. Họ sẽ có địa phương .gitignore nhưng không phải địa phương của bạn. Vui lòng sử dụng nó một cách cẩn thận.Có lẽ những gì bạn đang tìm kiếm là đặt ~/trước bản ghi .gitignore_global của bạn trong tệp .gitconfig: 'excludeesfile = ~/.gitignore_global' –

Trả lời

18

Đường dẫn đến các gitignore toàn cầu cần phải được tuyệt đối, vì vậy bạn có thể sử dụng việc mở rộng vỏ ở đây và chỉ cần xác định nó như ~/.gitignore_global:

git config --global core.excludesfile ~/.gitignore_global 

Để hiểu những gì đang xảy ra nếu bạn don Không sử dụng đường dẫn tuyệt đối, bạn phải hiểu cách cấu hình git hoạt động: Mỗi kho lưu trữ có một trong .git/config. Ngoài ra, có toàn cầu ~/.gitconfig. Giá trị cấu hình từ cả hai vị trí được hợp nhất (với cài đặt kho lưu trữ cục bộ được ưu tiên trong trường hợp xung đột) để tạo ra một tập hợp các cài đặt cấu hình đơn lẻ. Bạn có thể kiểm tra chúng bằng cách chạy git config -l bên trong một kho lưu trữ cục bộ.

Vì vậy, cấu hình luôn là cục bộ cho kho lưu trữ hiện tại. Vì vậy, khi bạn có một đường dẫn tương đối đến một "toàn cầu" excludeesfile, con đường đó được giải thích tương đối với kho lưu trữ của bạn.

Vì vậy, với excludesfile = .gitignore_global, Git sẽ xem xét kho lưu trữ địa phương của bạn cho một tệp gitignore_global. Và nó sẽ sử dụng nó cũng như bình thường .gitignore.git/info/exclude của kho lưu trữ.

Vì vậy, bạn thực sự có thể đặt một tệp .gitignore_global vào mỗi kho lưu trữ và Git sẽ chọn nó.

Vì bạn muốn có cấu hình chung, bạn cần chỉ định đường dẫn tuyệt đối.

+0

yup. Nó đang làm việc. nhưng tôi muốn biết tại sao nó không hoạt động. git config --global core.excludesfile .gitignore_global –

+0

@HemantParihar Thêm giải thích thêm về lý do tại sao một đường dẫn tuyệt đối là cần thiết. – poke

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