2010-08-14 32 views
6

Tôi đang sử dụng git với capistrano.Capistrano tải lên thư mục .git

tôi khởi tạo dự án của tôi bên trong thư mục của tôi trên máy tính địa phương của tôi như vậy:

git init 

sau đó tôi đẩy dự án vào thư mục máy chủ sau đó tôi gọi cap deploy Các triển khai hoạt động, ngoại trừ việc nó tải lên các địa phương. cấu trúc thư mục git, cũng như mygitignore và Capfile của tôi vào một thư mục có thể truy cập công cộng.

Dưới đây là tập tin gitignore tôi:

.DS_Store 
uploads/**/* 
Capfile 
.gitignore 
.git/**/* 

này dường như không làm các trick. Bất kỳ giúp đỡ?

Cảm ơn!


Edit: cập nhật .gitignore file:

đã thay đổi chiến lược triển khai xuất khẩu:

set :deploy_via, :export 

này làm việc cho bỏ qua thư mục .git, nhưng nội dung của tập tin .gitignore tôi nhìn thấy dưới đây vẫn không được tính đến

.DS_Store 
includes/php/config.php 
/uploads 
Capfile 
.git 





EDIT 2 (Solution): Sửa 1 kết hợp với những điều sau đây đã làm các trick. Các tệp đã được thêm trước khi được liệt kê trong tệp .gitignore sẽ liên tục được tải lên. Giả sử tôi có tệp .gitignore sau.

.DS_Store 
includes/php/config.php 

Sau đó, tôi chạy các lệnh sau:

git add . 
git commit -a -m 'some commit' 

Sau đó, tôi quyết định để thêm vào tập tin .gitignore của tôi vì vậy nó bây giờ trông như thế này:

.DS_Store 
includes/php/config.php 
Capfile 

Sau đó, một lần nữa, tôi chạy :

git add . 
git commit -a -m 'another commit' 

Bây giờ tôi thấy rằng .DS_Storeincludes/php/config.php chưa được tải lên nhưng Capfile có ... Đây là những gì đã xảy ra với tôi trong câu hỏi ban đầu của tôi. Lý do: Tôi cho rằng tệp .gitignore chỉ được xem xét khi thêm (ví dụ: git add .). Nếu tôi đã thêm tệp, sau đó đặt chúng trong tệp .gitignore, chúng sẽ được thêm vào dự án. Tôi cần sử dụng lệnh git rm để xóa chúng. Tôi chỉ mới bắt đầu một lần nữa với một repo .git mới và giải quyết được vấn đề, nhưng bạn không cần phải - bạn chỉ có thể xóa bất kỳ tệp nào bạn đã thêm nhưng bây giờ muốn bỏ qua với lệnh git rm.

Tôi đã chọn câu trả lời đã giúp tôi đi đến kết luận này là kết quả phù hợp, mặc dù giải pháp hoàn chỉnh chỉ được nêu chi tiết ở trên.

+0

Có phải 'git' bỏ qua các tệp bạn muốn' git' bỏ qua không? –

+0

nó bỏ qua một tập tin cấu hình tôi muốn nó bỏ qua, nhưng không phải toàn bộ thư mục - tôi có làm gì sai không? –

Trả lời

16

Chiến lược triển khai của bạn là gì?

Bạn có thiết lập Capistrano để loại trừ tệp .git không? nếu bạn đang sử dụng set :deploy_via, :copy sau đó hãy chắc chắn để thêm những điều sau đây:

set :copy_exclude, [".git/*", ".svn/*", ".DS_Store"]

Nếu không sử dụng set :deploy_via, :export mà nên bỏ qua các thư mục kiểm soát nguồn của bạn

http://www.capify.org/index.php/Understanding_Deployment_Strategies

+0

hoạt động để bỏ qua thư mục .git, nhưng tệp .gitignore của tôi vẫn không được tính đến. Vui lòng xem chỉnh sửa –

+0

bạn có 'set: scm,: git' trong quá trình triển khai không? – zzawaideh

1

Nhìn vào một similar question, nó xuất hiện bạn không cần bộ chọn thẻ hoang dã và chỉ có thể có:

uploads/ 

Bạn cần triển khai qua :git trong Capistrano và thực hiện xuất. Về cơ bản, nó là git clone và sau đó chỉ xóa thư mục .git sau đó.

Vấn đề của bạn không liên quan nhiều đến Cap. Đảm bảo tệp .gitignore của bạn hoạt động chính xác.

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