Tôi muốn bỏ qua một số tệp nhất định trong một chi nhánh mà không phải dựa vào tệp .gitignore
được theo dõi sẽ bị ghi đè trong quá trình hợp nhất với các nhánh khác.Git không bao gồm tệp cho chi nhánh
Tôi đã theo dõi chặt chẽ a Stack Overflow answer cùng với the linked blog post, nhưng repo của tôi dường như không nhận ra được số excludesfile
được chỉ định trong số .git/config
của tôi. Tài liệu Git (git-config
, gitignore
) dường như không hiển thị cách chỉ định và giải quyết loại trừ tệp cho một nhánh cụ thể.
.git/config
của tôi trông như thế này:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
excludesfile = +/info/exclude
[branch "myspecialbranch"]
excludesfile = +/info/exclude_specialbranch
tập tin .git/info/exclude
của tôi trông như thế này (theo mặc định, tôi không chạm vào nó):
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
.DS_Store
Tôi không có một tập tin .gitignore
trong "specialbranch" của tôi.
Nếu tôi cố gắng bỏ qua một tập tin như info.php
, file .git/info/exclude_specialbranch
của tôi trông như thế này:
info.php
... nhưng nó không bỏ qua các tập tin.
Nếu tôi chạy git status --ignored
, nó chỉ liệt kê tệp .DS_Store
từ tệp exclude
mặc định.
Tuy nhiên, nếu tôi thêm info.php
đến file .git/info/exclude
tôi:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
.DS_Store
info.php
nó bỏ qua các tập tin một cách hoàn hảo.
Lưu ý rằng nó vẫn hoạt động mà không có dòng excludesfile = +/info/exclude
dưới [core]
trong .git/config
. Git dường như biết nơi mà toàn hệ thống exclude
là không có tôi phải nói với nó.
Tôi có một cảm giác rằng .git/config
không nhận ra địa chỉ của khách hàng của tôi không bao gồm file:
excludesfile = +/info/exclude_specialbranch
... rất có thể vì việc sử dụng +
để mô tả vị trí của thư mục .git
.
Phương pháp chính xác để giải quyết các tệp loại trừ tùy chỉnh trong các phiên bản Git mới hơn?
Tôi đang chạy OSX 10.9.5 và phiên bản Git 2.2.1.
Nếu bạn muốn biết thêm thông tin về công việc xung quanh, hãy ping cho tôi qua @Palec trong phần bình luận ở đây. – Palec
ha cảm ơn - tôi vừa đọc xong toàn bộ http://git-scm.com/docs/git-config (!) Và đã tự hỏi tại sao tôi không nhìn thấy một branch.excludesfile - tôi sẽ kiểm tra công việc của bạn- xung quanh. – goredwards
Tôi đã kiểm tra lịch sử của git-config và gitignore manpages và họ không bao giờ đề cập đến 'branch. .excludesfile'. –
Palec