2010-10-12 33 views
11

Tôi đã rút ra mái tóc của mình để nghiên cứu tài liệu trên mạng và các tài liệu khác nhau về các tệp .gitignore. Tôi là một chút của một n00b với Unix/Terminal (sử dụng Mac OS X) và tôi không thể cho cuộc sống của tôi tìm ra cách bỏ qua nội dung của một thư mục (bất kỳ loại nội dung nào, có thể là tệp hoặc thư mục khác, không có vấn đề sâu sắc như thế nào).gitignore và cách bỏ qua tên thư mục chung và nội dung của nó

Tôi đang làm việc trên một dự án tạo tệp hình ảnh trong cấu trúc tệp nhất quán, ngoại trừ chúng tôi đang nhận được xung đột hợp nhất liên quan đến quyền của người dùng. Tôi muốn bỏ qua các thư mục có chứa các hình ảnh được tạo ra để chúng tôi có thể tránh bất kỳ kéo tóc nữa phải điều chỉnh quyền trên cơ sở mỗi lần kéo. Tôi chỉ gặp sự cố khi tải tệp .gitignore để làm việc, vì vậy tôi cần tìm ra mẫu phù hợp cho nội dung phù hợp với thư mục. Tôi muốn nó là đủ chung ở chỗ nó có thể dễ dàng bao gồm toàn bộ trang web (vì vậy nếu bất kỳ thư mục có chứa một tên thư mục cụ thể, nó sẽ bỏ qua nội dung của nó).

Tôi đã thử:

# Images 
resample/ 
resize/ 
min/ 

Và ...

# Images 
resample/* 
resize/* 
min/* 

Và ...

# Images 
*/resample/* 
*/resize/* 
*/min/* 

Và nhiều kết hợp hơn với kết quả không đạt yêu cầu. Tôi chưa bao giờ có mẫu foldername/**/* để làm việc. Bất kỳ trợ giúp nào về vấn đề này sẽ được đánh giá cao nhất!

+1

Ví dụ đầu tiên nên làm việc. Nhưng đó là trường hợp nhạy cảm, bạn có chắc chắn các tên thư mục là tất cả các chữ thường? –

+0

Vâng, tất cả đều là chữ thường. –

Trả lời

23

Nhờ áp phích trước đó để được trợ giúp. Sau khi tìm hiểu thêm, tôi đã khám phá cách thực hiện đúng các quy tắc .gitignore mới. Vấn đề là trước những hình ảnh đang được theo dõi vì vậy tôi đã phải loại bỏ các tham chiếu đến các tập tin bên trong file .git/index, như vậy ...

// Remove all tracked files from the index 
// (doesn't remove the file, just the reference) 
git rm -r --cached . 

// Add all the files again 
// (files and folders specified by .gitignore aren't added to the index) 
git add . 

// Commit to save changes 
git commit -am "gitignore update" 
+0

Cảm ơn bạn đã thêm điều này. Tôi sắp bắt đầu sử dụng git bản thân mình, đây là tất cả cần phải biết công cụ. – kevpie

+2

Tôi nghĩ bạn không cần '-a' trong cờ cam kết nếu bạn đã thêm các tệp trước đó. – Noich

8

Bạn đang tìm kiếm gitignore

Một tập tin gitignore quy định cụ thể các file cố ý untracked rằng git nên bỏ qua. Lưu ý rằng tất cả các tệp gitignore thực sự chỉ quan tâm đến các tệp chưa được git theo dõi;

Nếu tệp hoặc thư mục của bạn nằm trong kho lưu trữ, tệp hoặc thư mục đó phải được xóa khỏi kho lưu trữ để nó có thể bỏ qua.

Đồng thời, hãy chú ý đến độ nhạy của chữ hoa trong mẫu của bạn.

Danh sách đầu tiên của bạn nên hoạt động giả định rằng các thư mục đó hiện không nằm trong kiểm soát phiên bản.

# Images 
resample/ 
resize/ 
min/ 
+0

Cảm ơn vì điều đó. Sau một số nghiên cứu và thử nghiệm tiếp theo, tôi đã tìm ra một vài điều thú vị ... –

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