Làm cách nào để bỏ qua tất cả các tệp trong thư mục có kho lưu trữ Git trong Sourcetree?


86

Tôi có một kho lưu trữ Bitbucket Git được quản lý bằng Sourcetree.

Tôi có hai thư mục mà tôi muốn cam kết, nhưng tôi cần phải bỏ qua tất cả các tệp trong các thư mục này, vì chúng chỉ chứa các tệp tạm thời.

Làm thế nào tôi có thể làm điều đó?

Câu trả lời:


54

Thêm cái này vào .gitignore:

*
!.gitignore

13
Điều này sẽ được thêm vào bên trong mỗi thư mục bạn muốn theo dõi. Bản thân sự tồn tại của tệp này sẽ làm cho git theo dõi thư mục (bằng cách theo dõi tệp này). Các *phương tiện bỏ qua tất cả các file, và các !.gitignorephương tiện không bỏ qua các tập tin bản thân
Billy mặt trăng

2
Như Billy Moon đã giải thích, cảm ơn. Vì vậy, bạn có thể tạo tệp .gitignore trong thư mục. Tệp này cho Git biết những gì nên bỏ qua hoặc những gì không nên.
Gergo Erdosi

21
Làm thế nào để bạn làm điều này trong SourceTree?
1,21 gigawatts

1
Bạn không cần SourceTree cho việc này, đây .gitginorelà một tệp thông thường, chỉ cần tạo nó trong thư mục mà nội dung bạn muốn bỏ qua.
Gergo Erdosi

1
Như đã đề cập bởi @ AD7six bên dưới, không thêm! .Gitignore vào tệp vì nó là không cần thiết.
Xcalibur

155

Đối với người dùng Sourcetree: Nếu bạn muốn bỏ qua một thư mục cụ thể, chỉ cần chọn một tệp từ thư mục này, nhấp chuột phải vào nó và thực hiện "Bỏ qua ...". Bạn sẽ có một menu bật lên nơi bạn có thể bỏ qua "Bỏ qua mọi thứ bên dưới: <THƯ MỤC KHÔNG MONG MUỐN CỦA BẠN>"

Thực đơn đầu tiên

Menu thứ hai

Nếu bạn có tùy chọn "Bỏ qua" chuyển sang màu xám, bạn phải chọn tùy chọn "Dừng theo dõi". Sau đó, tệp sẽ được thêm vào Tệp có dấu trừ trên biểu tượng nền màu đỏ và biểu tượng của tệp trong danh sách Tệp chưa được phân bố sẽ chuyển thành dấu hỏi trên nền màu tím. Bây giờ trong danh sách tệp chưa được phân trang , tùy chọn "Bỏ qua" được bật lại. Chỉ cần làm như mô tả ở trên.


14
Nếu thư mục đã được cam kết, hãy xóa nó trước, thực hiện các thay đổi, sau đó làm theo các bước trên.
RMorrisey

16
Tôi có tùy chọn "Bỏ qua" chuyển sang màu xám. Có ai biết tại sao không?
Andrei Karcheuski

6
Tôi cũng bị phớt lờ.
Micah Zoltu

bỏ qua thêm vào git bỏ qua? nếu không, tai sao không?
Joe Lloyd

1
@JoeLloyd vâng nó thêm vào git bỏ qua. Bạn thậm chí có thể cam kết tệp bỏ qua git được tạo / chỉnh sửa giống như bất kỳ tệp nào khác.
Kalzem

25

Nhấp chuột phải vào tệp → Bỏ quaBỏ qua mọi thứ bên dưới .

Nếu tùy chọn Bỏ qua chuyển sang màu xám thì:

  1. Giai đoạn một tệp trước tiên
  2. Nhấp chuột phải → Dừng theo dõi
  3. Tệp đó sẽ xuất hiện trong khung bên dưới với dấu chấm hỏi → Nhấp chuột phải vào tệp đó → Bỏ qua

Nhập mô tả hình ảnh tại đây


7

Theo như tôi biết, Git không theo dõi các thư mục, chỉ các tệp - vì vậy các thư mục trống (hoặc các thư mục mà tất cả các tệp bị bỏ qua) không thể được cam kết. Ví dụ: nếu bạn cần thư mục hiện diện do một số bước trong quá trình xây dựng của bạn, có lẽ bạn có thể nhờ công cụ xây dựng của mình tạo nó thay thế? Hoặc bạn có thể đặt một tệp trống, không được bỏ qua trong thư mục và cam kết nó.


1
Ý bạn là nếu tôi muốn theo dõi thư mục, tôi phải thêm tệp "dummy" và bỏ qua phần còn lại? : - /
rubdottocom Ngày

2
@rubdottocom: Tôi tin như vậy; thư mục tồn tại trong git chỉ vì các tệp có trong đó. Tại sao bạn cần kiểm soát phiên bản thư mục trống?
Aasmund Eldhuset

2
Có nhiều lý do để theo dõi các thư mục trống. Bạn có thể muốn rằng một thanh toán có sẵn thư mục cho mọi người sử dụng mà không cần phải tạo chúng riêng lẻ. Mã của bạn có thể phụ thuộc vào sự tồn tại của một thư mục nhất định, ví dụ: một thư mục đang chờ tải lên và nếu thư mục không tồn tại, nó không thể tải lên các tệp ở đó, v.v.
Billy Moon

Đối với lý do được giải thích bởi @AasmundEldhuset, câu trả lời do Gergo đưa ra có giải pháp đúng.
Billy Moon

@BillyMoon: Tôi đồng ý rằng có thể có lý do; Tôi đang băn khoăn không biết nhu cầu cụ thể của anh ấy là gì , để chúng tôi có thể đề xuất giải pháp phù hợp nhất. :-) Thủ thuật của Gergo rất gọn gàng, mặc dù nó chỉ cần thêm một (nhiều hoặc ít) tệp giả vào thư mục, như tôi đã đề xuất. Tuy nhiên, giải pháp của anh ấy mang tính git-ish hơn nên +1 với anh ấy.
Aasmund Eldhuset

5

Sau khi đập đầu vào vấn đề này trong ít nhất một giờ, tôi đưa ra câu trả lời này để cố gắng mở rộng ý kiến ​​của một số người khác đã đưa ra. Để bỏ qua một thư mục / thư mục, hãy thực hiện như sau: nếu bạn không có tệp .gitignore trong thư mục gốc của dự án (tên chính xác là ".gitignore"), hãy tạo một tệp văn bản giả trong thư mục bạn muốn loại trừ. Bên trong Cây Nguồn, nhấp chuột phải vào nó và chọn Bỏ qua. Bạn sẽ nhận được một cửa sổ bật lên trông như thế này.

nhập mô tả hình ảnh ở đây

Chọn "Mọi thứ bên dưới" và chọn thư mục bạn muốn bỏ qua từ danh sách thả xuống. Thao tác này sẽ tạo tệp .gitignore trong thư mục gốc của bạn và đặt thông số thư mục vào đó.

Nếu bạn đã có thư mục .gitignore trong thư mục gốc của mình, bạn có thể làm theo cách tương tự ở trên hoặc bạn chỉ có thể chỉnh sửa tệp .gitignore và thêm thư mục bạn muốn loại trừ. Nó chỉ là một tập tin văn bản. Lưu ý rằng nó sử dụng dấu gạch chéo về phía trước trong tên đường dẫn thay vì dấu gạch chéo ngược, như người dùng Windows chúng ta đã quen với. Tôi đã thử tạo tệp văn bản .gitignore bằng tay trong Windows Explorer, nhưng nó không cho phép tôi tạo tệp không có tên (tức là chỉ có phần mở rộng).

Lưu ý rằng việc thêm .gitignore và đặc tả tệp sẽ không ảnh hưởng đến các tệp đã được theo dõi. Nếu bạn đã theo dõi những thứ này, bạn sẽ phải ngừng theo dõi chúng. (Nhấp chuột phải vào thư mục hoặc tệp và chọn Dừng Theo dõi.) Sau đó, bạn sẽ thấy chúng thay đổi từ có biểu tượng màu xanh lá cây / sạch hoặc hổ phách / đã thay đổi thành biểu tượng màu đỏ / bị loại bỏ. Trong lần cam kết tiếp theo của bạn, các tệp sẽ bị xóa khỏi kho lưu trữ và sau đó xuất hiện với biểu tượng màu xanh lam / bị bỏ qua. Một cộng tác viên khác đã hỏi tại sao Bỏ qua bị vô hiệu hóa đối với các tệp cụ thể và tôi tin rằng đó là vì anh ta đang cố gắng bỏ qua một tệp đã được theo dõi. Bạn chỉ có thể bỏ qua tệp có biểu tượng dấu chấm hỏi màu xanh lam.


Để tạo .gitignore tập tin trong Widnows, sử dụng Git bash lệnh 'cảm ứng .gitignore'
Mikee

4

Như những người khác đã đề cập: git không theo dõi các thư mục, chỉ theo dõi các tệp.

Bạn có thể đảm bảo một thư mục tồn tại bằng các lệnh sau (hoặc logic tương đương):

echo "*" > keepthisfolder/.gitignore
git add --force keepthisfolder/.gitignore
git commit -m "adding git ignore file to keepthisfolder"

Sự tồn tại của tệp sẽ có nghĩa là bất kỳ ai kiểm tra kho lưu trữ sẽ có thư mục.

Nội dung của tệp gitignore sẽ có nghĩa là mọi thứ trong đó đều bị bỏ qua

Bạn không cần phải bỏ qua chính tệp .gitignore . Đó là một quy tắc sẽ không phục vụ mục đích nào khi đã cam kết.

HOẶC LÀ

nếu bạn muốn giữ tất cả các định nghĩa bỏ qua ở cùng một nơi, bạn có thể tạo .gitignore trong thư mục gốc của dự án với nội dung như sau:

*.tmp # example, ignore all .tmp files in any folder
path/to/keepthisfolder
path/to/keepthatfolder

và để đảm bảo các thư mục tồn tại

touch path/to/keepthisfolder/anything
git add --force path/to/keepthisfolder/anything
git commit -m "ensure keepthisfolder exists when checked out"

"bất cứ điều gì" theo nghĩa đen có thể là bất cứ điều gì. Các tên thường được sử dụng là .gitignore, .gitkeep, trống.


3

Nếu tùy chọn Bỏ qua của bạn chuyển sang màu xám, bạn phải ngừng theo dõi tệp trước khi có thể bỏ qua. Bạn chỉ cần nhấp chuột phải vào tệp và nhấn "Dừng theo dõi".

Một biểu tượng màu xanh sẽ xuất hiện bên cạnh nó. Nhấp chuột phải vào nó một lần nữa và nhấp vào bỏ qua.


2

Bỏ qua thư mục đầy đủ trên cây nguồn.

   Just Open Repository >Repository setting > Edit git ignore File and 
   you can rite some thing like this :

 *.pdb 
*.bak 
*.dll
*.lib 
.gitignore
packages/ 
*/bin/
*/obj/ 

Đối với thư mục bin và thư mục obj chỉ cần viết: * / bin / * / obj /


0
  • Bỏ qua tất cả các tệp trong thư mục với Git trong Sourcetree:

Bỏ qua tất cả các tệp trong thư mục với Git trong Sourcetree


-2

Trong Sourcetree: Chỉ cần bỏ qua một tệp trong thư mục được chỉ định. Sourcetree sẽ hỏi bạn có muốn bỏ qua tất cả các tệp trong thư mục đó không. Thật hoàn hảo!


14
-1 một câu trả lời vô nghĩa. Vì bạn không giải thích cách thực hiện việc bỏ qua (trong sourcetree)!
Kỹ sư
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.