Git thêm tất cả các thư mục con


84

Tôi đang gặp sự cố khi thêm một thư mục và tất cả các thư mục con của nó vào kho lưu trữ git của tôi. Tôi nhận ra đây là một câu hỏi rất phổ biến sau khi thực hiện một số googling và tôi đã thử từng gợi ý mà không gặp may, cụ thể là gợi ý từ trang người đàn ông trên git-add . Tôi thậm chí đã thử git add -Amà không thành công. Vì lợi ích đơn giản, giả sử tôi đã khởi tạo kho lưu trữ git của mình bằng Dir1. Sau đó, tôi có cấu trúc thư mục sau của các tệp.

Dir1/file1-1.txt
Dir1/file1-2.txt
Dir1/Dir2/file2-1.txt
Dir1/Dir2/Dir3/file3-1.txt

Các tệp thực của tôi có các thư mục con có độ sâu từ 5-6 cấp, vì vậy có lệnh git để thêm tất cả các tệp trong mỗi thư mục con vào kho lưu trữ của tôi không? Ngay bây giờ, khi tôi thực hiện đề xuất từ ​​trang người đàn ông, git add Dir1/\*tôi có thể thấy Dir2trong repo của mình, nhưng nó hiển thị dưới dạng thư mục màu xanh lá cây và tôi không thể mở nó, điều này khiến tôi tin rằng tất cả các tệp / thư mục trong Dir2đó đều không nhận được. thêm. Mọi sự trợ giúp sẽ rất được trân trọng. Tôi là một người dùng git mới (chưa đến một tuần sử dụng nó), vì vậy hãy thử và giữ các hướng dẫn của bạn ở mức độ người mới bắt đầu.


2
git addcủa bất kỳ thư mục nào được tự động đệ quy. Sử dụng git add .ở cấp cao nhất của repo nên thêm mọi thứ vào đó. Nếu không, .gitignorenó đang chơi (cục bộ hoặc toàn cầu).
Nevik Rehnel

bạn đã kiểm tra .gitignore? Bằng cách nào đó có thể các thư mục của bạn bị bỏ qua.
ogzd,

2
đầu ra của là git status --ignoredgì?
Chronial,

1
Chỉ để giúp những người khác xem câu hỏi này, nếu thư mục bạn tạo không có bất kỳ tệp nào trong đó, chúng sẽ không được thêm bởi git add .Bạn phải thêm một số tệp trong thư mục để git theo dõi chúng.
đi

Câu trả lời:


106

Làm,

git add .

khi ở trong thư mục gốc của kho lưu trữ. Nó sẽ thêm mọi thứ. Nếu bạn làm vậy git add *, nó sẽ chỉ thêm các *điểm tệp vào. Dấu chấm đơn đề cập đến thư mục.

Nếu thư mục hoặc tệp của bạn không được thêm vào git index / repo sau lệnh trên, hãy nhớ kiểm tra xem nó có được git bỏ qua trong tệp .gitignore hay không .


8
Chỉ cần thử cái này. Vẫn không làm việc. Tôi đã thêm git. git commit git push origin master Tôi có thiếu thứ gì không?
Josh Bradley

4
Giả sử các tệp của bạn thuộc Dir1, bạn nên làm cd Dir1; git init; git add . ; git commit;Không cần làm gì khác. Nếu bạn có .gitignore bỏ qua các tệp trong thư mục nào đó và vẫn muốn thêm chúng, bạn cần thực hiện git add -f .thay vì git add ..
Kalle Pokki,

5
Tôi đã thử "git add." nhưng nó không hoạt động. Ngày hôm sau, tôi quay lại và thử và mọi thứ "chỉ hoạt động" nên cảm ơn! Đó hẳn là một trong những lỗi nửa đêm biến mất khi đèn bật trở lại.
Josh Bradley

2
git thêm. không hoạt động và nó không thêm đệ quy các thư mục con và nội dung của nó.
Biết Không Nhiều

Bạn có thể cần mở một cửa sổ lệnh mới để nó hoạt động nhất quán.
lồng lục lạc


13

Bạn cũng có thể gặp vấn đề nếu bản thân thư mục con là kho lưu trữ git - tức là. Có thư mục .git - hãy kiểm tra ls -a.

Để loại bỏ, hãy chuyển đến thư mục con và rm .git -rf.


2
Về việc sử dụng thiết bị đầu cuối OSX 10.11.6: rm -rf .git
Sébastien REMY

2
Điều tương tự phải không?
PaulB

5

Cũng gặp khó khăn, nhưng đã gõ đúng

git add -f ./JS/*

trong đó JS là tên thư mục của tôi chứa các thư mục con và tệp


2
nó có thể thêm các tệp bị bỏ qua và làm lộn xộn trong kho lưu trữ.
changtung

1

Tôi không thể nói chắc liệu có đúng như vậy không, nhưng điều có vẻ là vấn đề đối với tôi là có tệp .gitignore trong một số thư mục con. Một lần nữa, tôi không thể đảm bảo điều này, nhưng mọi thứ vẫn hoạt động sau khi chúng bị xóa.


0

Hầu hết các tập tin .gitignore khả năng s đang ở chơi. Lưu ý rằng tệp .gitignore có thể xuất hiện không chỉ ở cấp gốc của repo mà còn ở bất kỳ cấp phụ nào. Bạn có thể thử điều này từ cấp cơ sở để tìm chúng:

tìm thấy . -tên ".gitignore"

và sau đó kiểm tra kết quả để xem điều nào có thể ngăn cản việc thêm các mã con của bạn.

Cũng có thể có các mô-đun con liên quan. Kiểm tra các thư mục vi phạm để tìm tệp ".gitmodules".


0

Tôi đã gặp sự cố này trước đây, khi thư mục (phụ) tôi đang cố thêm có tên bắt đầu bằng "_Something_"

Tôi đã xóa dấu gạch dưới và nó hoạt động. Kiểm tra xem thư mục của bạn có các ký tự có thể gây ra sự cố hay không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.