.gitignore, tôi nên đặt nó ở đâu trong dự án xcode của mình?


Câu trả lời:


124

Bạn có thể có một .gitignoretrong mọi thư mục của dự án của mình.

Tuy nhiên, cách tốt nhất là có một .gitignoretệp duy nhất trên thư mục gốc của dự án và đặt tất cả các tệp mà bạn muốn bỏ qua trong đó, như sau:

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

Khi bạn tạo .gitignoretệp, các tệp bỏ qua có thay đổi hoặc mới vào kho lưu trữ sẽ không được hiển thị là đang chờ cam kết.

Bạn cũng có thể có một tệp bỏ qua git cục bộ toàn cầu, tệp này sẽ quản lý tất cả các kho lưu trữ git của bạn.

git config --global core.excludesfile ~/.gitignore_global

Thay thế này đặc biệt thú vị đối với các tệp bị bỏ qua không liên quan đến dự án, chẳng hạn như tệp liên quan đến IDE, v.v.


1
.Gitignore này nên được thêm tại nguồn gốc hay trong bản sao chính / cục bộ của bạn?
Adil

1
Tại địa phương (tất nhiên bạn sẽ đẩy nó về nguồn gốc tại một số điểm).
Daniel Ribeiro

21

Có các cách để bỏ qua tệp trong git:

  1. Global git ignore: - Trong cách tiếp cận này, các quy tắc tùy chỉnh của bạn sẽ được áp dụng cho mọi thư mục git trong máy của bạn. Thông thường, tệp này có thể được tạo theo ~/.gitignore_globalđường dẫn. Cách tiếp cận này tốt nếu bạn muốn loại trừ một số tệp loại được tạo bởi OS hoặc bất kỳ công cụ ghi nhật ký, tính tiền mặt, v.v. nào khác.
  2. Per-repository git ignore: - Trong cách tiếp cận này, các quy tắc tùy chỉnh của bạn sẽ được áp dụng cho thư mục git cụ thể trong máy của bạn. Quy tắc cục bộ cho mỗi kho lưu trữ có thể được thêm vào .git/info/excludetệp trong kho lưu trữ của bạn. Các quy tắc được chỉ định trong tệp này sẽ không được cam kết, có nghĩa là nó sẽ không được chia sẻ với người khác. Nói chung, phương pháp này hữu ích để ngăn chặn việc lưu các tệp được tạo cục bộ. Ví dụ: đối với các tệp do trình chỉnh sửa của bạn tạo.
  3. Per path git ignore: - Trong trường hợp này, các quy tắc tùy chỉnh của bạn sẽ được áp dụng cho đường dẫn con của kho lưu trữ git cụ thể. Bạn có thể tạo .gitignoretrong bất kỳ đường dẫn con nào của kho lưu trữ cụ thể của mình. Cách tiếp cận này thường được sử dụng để bỏ qua một số loại tệp chỉ trong thư mục cụ thể của kho lưu trữ cụ thể. Trong khi các tệp này có thể được thêm vào kiểm soát phiên bản bằng các đường dẫn khác và các kho lưu trữ khác.

Vì vậy, đề xuất của tôi cho bạn là, nếu bạn muốn bỏ qua tệp cụ thể của mình ( UserInterfaceState.xcuserstate) trong tất cả các kho lưu trữ của mình, cách tiếp cận tốt nhất là sử dụng phương pháp tiếp cận git bỏ qua toàn cục. Tuy nhiên, nếu tệp của bạn chỉ được tạo trong kho lưu trữ cụ thể, bạn có thể sử dụng cách tiếp cận git bỏ qua trên mỗi kho lưu trữ.

Để biết thêm thông tin, bạn có thể đọc bài đăng trên blog tuyệt vời này . Và có thể thiết lập các quy tắc bỏ qua git cho từng ngôn ngữ cụ thể ở đây . Và bạn có thể tự động tạo các quy tắc bỏ qua git chung cho ngôn ngữ, công cụ hoặc hệ điều hành cụ thể bằng cách sử dụng trang web này .



12

Tôi nên đặt .gitignoretệp ở đâu ?, nó có bên trong thư mục .git không?

Không có .gitignorebên trong một .gitthư mục.
Tuy nhiên, đây là một .git/info/excludetệp, cho phép bạn loại trừ một tệp cục bộ, nói chung khi bạn muốn loại trừ một tệp chỉ cho repo cụ thể này (với bí danh như thế này ):

git config alias.exclude "!sh -c 'echo \"$1\" >> .git/info/exclude' -"
git exclude UserInterfaceState.xcuserstate

Nếu bạn cần loại trừ tệp này cho tất cả các dự án tương tự, như Elnur Abdurrakhimov đã đề cập trong câu trả lời của mình , hãy loại trừ nó trên toàn cầu.

echo UserInterfaceState.xcuserstate >> ~/.gitignore

Tuy nhiên, như đã đề cập trong " Chúng ta có cần kiểm tra * .xcuserstate không? ", Nếu đó là một loại tệp mà bất kỳ người dùng nào của repo đó đều bỏ qua, thì tôi thực sự sẽ tạo phiên bản .gitignore ở đầu repo, với nội dung tương tự như:

*.xcuserstate 

Bằng cách đó, bất kỳ người dùng nào của repo đó thậm chí sẽ không nhận ra rằng tệp này tồn tại và được tạo ra (bất kể tên của nó là gì): nó sẽ không hiển thị sau này git status.

Hoặc bạn có thể bỏ quaxcuserdata/ hoàn toàn (trong toàn cục .gitignorehoặc trong một phiên bản, như tệp GitHub chungObjective-C.gitignore .


Bạn là huyền thoại của GIT! luôn luôn là câu trả lời của bạn hữu ích nhất.
Jad Chahine

@JadChahine Cảm ơn bạn. Rất vui được giúp đỡ (ít nhất, viết những câu trả lời đó giúp tôi học git)
VonC

@tymac Không hoàn toàn;) Tôi chỉ truy cập thường xuyên ( meta.stackexchange.com/questions/122976/… )
VonC

9

Bạn không nên đặt các tệp dành riêng cho công cụ vào .gitignoretệp của dự án - trừ khi công cụ đó được yêu cầu sử dụng bởi mỗi nhà phát triển của dự án.

Thay vào đó, hãy tạo .gitignoretệp chung cá nhân của bạn trong thư mục chính và kích hoạt nó:

git config --global core.excludesfile ~/.gitignore

Bây giờ bạn có thể đưa bất kỳ tệp nào được tạo bởi các công cụ phát triển của bạn vào .gitignoretệp của bạn .


6

thông thường, phương pháp hay nhất là đưa .gitignoretệp vào thư mục gốc của dự án

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.