2012-06-15 25 views
25

Tôi đang tìm cách tạo tệp .gitignore để các tệp nhất định không được đăng ký vào kho lưu trữ. Có ai có hướng dẫn về cách thức và vị trí đặt tệp này không? Tôi đã thử đặt nó trong thư mục làm việc của tôi, chạy trạng thái git và nó vẫn đang chọn lên trên các tập tin tôi muốn nó bỏ qua.Git - Tạo tệp .gitignore

tôi đã sử dụng .gitignore tập tin này tôi đã tìm thấy:

################### 
# compiled source # 
################### 
*.com 
*.class 
*.dll 
*.exe 
*.pdb 
*.dll.config 
*.cache 
*.suo 
# Include dlls if they’re in the NuGet packages directory 
!/packages/*/lib/*.dll 
# Include dlls if they're in the CommonReferences directory 
!*CommonReferences/*.dll 
#################### 
# VS Upgrade stuff # 
#################### 
UpgradeLog.XML 
_UpgradeReport_Files/ 
############### 
# Directories # 
############### 
bin/ 
obj/ 
TestResults/ 
################### 
# Web publish log # 
################### 
*.Publish.xml 
############# 
# Resharper # 
############# 
/_ReSharper.* 
*.ReSharper.* 
############ 
# Packages # 
############ 
# it’s better to unpack these files and commit the raw source 
# git has its own built in compression methods 
*.7z 
*.dmg 
*.gz 
*.iso 
*.jar 
*.rar 
*.tar 
*.zip 
###################### 
# Logs and databases # 
###################### 
*.log 
*.sqlite 
# OS generated files # 
###################### 
.DS_Store? 
ehthumbs.db 
Icon? 
Thumbs.db 
+0

Không thể bỏ qua những tệp nào? – legoscia

+0

không thể bỏ qua dll và pdb – Funky

+0

Bạn có thể cung cấp đầu ra của trạng thái «git» không? – Dancrumb

Trả lời

10

bạn phải thêm .gitignore để chỉ số trước khi git nhìn thấy nó. tức là git add .gitignore

+0

Tôi đã thêm nó và sử dụng git push, sau đó chạy trạng thái git, nhưng vẫn có cùng kết quả – Funky

+5

Đủ để có một .gitignore trong thư mục cấp cao nhất. Không cần thêm idt vào repo. – Rudi

+1

Giống như Rudi đã nói, '.gitignore' không phải là một phần của kho lưu trữ của bạn. (Bản thân tệp .gitignore thường là mục nhập đầu tiên của tôi.) – ellotheth

3

Các dự án mà tôi đã làm việc trên đó, tôi có tệp .gitignore trong thư mục gốc của dự án, trong đó thư mục .git sẽ là. Đảm bảo tệp được cam kết.

Lưu ý rằng nếu bạn đã cam kết các tệp bạn đang cố bỏ qua (nghĩa là Git đang theo dõi chúng) thì chúng không thể bỏ qua. Bạn sẽ phải untrack chúng đầu tiên.

https://help.github.com/articles/ignoring-files

+0

Tôi nghi ngờ vấn đề là @Funky đã cam kết các tệp đó như bạn nói, do đó giải pháp sẽ loại bỏ chúng khỏi chỉ mục git bằng 'git rm file ...' và sau đó '.gitignore' sẽ làm việc " –

18

Vị trí của .gitignore phụ thuộc nếu các tập tin cần phải được bỏ qua cho chỉ một repo hoặc cho tất cả các hợp đồng mua của bạn. Đối với một repo, hãy đặt nó vào thư mục gốc của kho lưu trữ của bạn.

Khi bạn tạo tệp .gitignore trong kho lưu trữ hiện tại hoặc thêm tệp đã có trong repo, bạn phải đảm bảo xóa các tệp bị bỏ qua khỏi repo.

Nếu bạn có một test.dll trong thư mục gốc, bạn phải làm

git rm --cached test.dll 

Bây giờ nếu bạn có rất nhiều các tập tin, như bạn nói, bạn có thể lựa chọn các tùy chọn sau đây, loại bỏ tất cả mọi thứ từ cache, thêm nó tất cả trở lại (các tập tin trong .gitignore sẽ không được thêm vào) và cam kết tất cả mọi thứ một lần nữa.

git rm -r --cached . 
git add . 
git commit -m "Start using .gitignore" 
0

Từ liên kết @thescientist đã đăng:

Git cho phép bạn bỏ qua các tập tin bằng cách giả sử họ không thay đổi. Điều này được thực hiện bằng cách chạy các lệnh

git update-index --assume-unchanged path/to/file.txt

. Khi đánh dấu một tập tin như vậy, git sẽ hoàn toàn bỏ qua bất kỳ thay đổi nào trên tập tin đó; chúng sẽ không hiển thị khi chạy trạng thái git hoặc git diff, cũng như chúng sẽ không được cam kết.

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