Khắc phục: Gitignore không hoạt động

GitHub đã trở thành nhà tiên phong hàng đầu trong lĩnh vực cộng tác mã và chia sẻ kho lưu trữ. GitHub chủ yếu là một phần mềm kiểm soát phiên bản cho phép người dùng kiểm soát kiểm soát phiên bản phân tán và SCM (quản lý mã nguồn). Nền tảng này được sử dụng bởi các doanh nghiệp và công ty lớn trên toàn thế giới.

Các nền tảng như thế này có các vấn đề và kỹ thuật của chúng. Một vấn đề cụ thể mà các lập trình viên gặp phải là .gitignore không hoạt động trong GitHub. Nền tảng đã bỏ qua .gitignore hoặc hoạt động một phần. Điều thú vị cần lưu ý là vấn đề có thể hơi khác trong mỗi trường hợp vì mỗi trường hợp là một kịch bản hoàn toàn khác nhau. Tuy nhiên, các giải pháp mà chúng tôi liệt kê sẽ chứa các bản sửa lỗi sẽ hoạt động trên toàn cầu.

.Gitignore là gì?

Git (hoặc GitHub) xem mọi tệp trong thư mục làm việc của bạn. Nó mô tả mỗi tệp là một trong ba tệp:

  • Đã theo dõi: Các tệp này đã được cam kết hoặc được dàn dựng trước đó trong lịch sử.
  • Chưa được theo dõi: Đây là những tệp chưa được tạo hoặc cam kết trước đó.
  • Bỏ qua: Đây là những tệp mà chính người dùng đã yêu cầu Git bỏ qua hoàn toàn.

Các tệp bị bỏ qua này có thể khác nhau tùy theo tình huống và hầu hết là tệp do máy tạo ra hoặc tạo tác bản dựng. Đây là thực tế phổ biến; bạn có thể bỏ qua nhiều tệp khác theo nhu cầu của riêng bạn. Một số ví dụ về các tệp này là:

  • Mã đã biên dịch: Các tệp này thường có phần mở rộng .class, .pyc, .ccp, v.v.
  • Tệp hệ thống ẩn: Đây là các tệp được hệ thống sử dụng cho các hoạt động của nó nhưng bị ẩn khỏi chế độ xem thường, ví dụ: DS_Store hoặc Thumbs.db, v.v.
  • Xây dựng các thư mục đầu ra: Đây chủ yếu là các thư mục của / bin, / out, v.v.
  • Bộ nhớ đệm phụ thuộc: Các tệp này có thể là nội dung của mô-đun / nút hoặc / gói.
  • Tệp cấu hình IDE: Đây là các tệp cấu hình hầu hết được tạo hoặc quản lý bởi phần mềm IDE của bạn.
  • Tệp được tạo trong thời gian chạy: Có một số chương trình tạo tệp trong thời gian chạy. Nếu một trong hai mã như vậy được chạy, một số tệp có thể được tạo trong thời gian chạy trong thư mục làm việc của bạn và bạn có thể bỏ qua chúng trong Git.

Bất kỳ tệp nào bạn muốn bỏ qua đều được theo dõi trong tệp đặc biệt có tên là .gitignore, tệp này chủ yếu được kiểm tra trong thư mục gốc của kho lưu trữ đang làm việc của bạn. Theo tài liệu chính thức của GitHub về chủ đề này, không có lệnh gitignore cụ thể. Thay vào đó, bạn phải chỉnh sửa thủ công tệp mà bạn muốn bỏ qua. Tệp .gitignore chứa các mẫu được khớp với tên tệp trong kho lưu trữ đang làm việc của bạn và chúng được sử dụng để giúp xác định xem một tệp cụ thể có nên bị bỏ qua hay không.

Nguyên nhân nào khiến .gitignore không hoạt động?

Tính năng .gitignore có thể hoạt động hoàn hảo nhưng có thể bạn chưa định cấu hình nó đúng cách. Trong tất cả các cuộc khảo sát của chúng tôi, chúng tôi đã đi đến kết luận rằng mô-đun đã thực sự hoạt động. Lý do tại sao người viết mã không thể sử dụng tính năng này chủ yếu là do họ chưa định cấu hình tệp đúng cách hoặc có một số điều kiện không được đáp ứng trong mã cơ bản.

Dưới đây là một số giải pháp có thể phù hợp với bạn. Mỗi giải pháp có thể không áp dụng được trong trường hợp của bạn, vì vậy hãy đảm bảo rằng bạn chuyển sang giải pháp tiếp theo nếu các điều kiện ban đầu không được đáp ứng.

Giải pháp 1: Kiểm tra tệp .gitignore

Một trường hợp thú vị đã xảy ra khi chúng tôi thấy rằng tệp .gitignore được tạo ở định dạng sai. Sự cố cụ thể này xảy ra khi người dùng tạo tệp bằng ứng dụng mặc định của Notepad trong HĐH Windows. Nó chỉ ra rằng Notepad viết tệp bằng Unicode thay vì định dạng ANSI. Trong giải pháp này, chúng tôi sẽ lưu các thay đổi của Notepad ở định dạng chính xác của .gitignore và xem điều này có khắc phục được sự cố hay không.

Lưu ý: Bạn phải xóa phần mở rộng của .txt khỏi tệp khi tạo tệp mới bằng Notepad.

  1. Sau khi viết mã hoặc thay đổi trong tài liệu văn bản mới trong Notepad, hãy nhấp vào Tệp và chọn Lưu dưới dạng .
  1. Bây giờ ở phía trước Mã hóa , hãy chọn ANSI . Bây giờ, hãy xóa phần mở rộng tệp .txt và lưu tệp với tên ' .gitignore '. Chọn đúng thư mục và lưu.
  1. Bây giờ điều hướng đến thư mục và kiểm tra xem tệp chính xác đã được tạo chưa. Bây giờ hãy kiểm tra lại bằng Git và xem tính năng Bỏ qua có hoạt động như mong đợi hay không.

Các nhà phát triển nên kiêng sử dụng Notepad mặc định trong Windows. Thay vào đó, bạn nên sử dụng notepad 'lập trình viên' thích hợp. Một số ví dụ bao gồm Notepad ++, v.v. Trong đó, bạn sẽ không gặp các vấn đề như thế này.

Lưu ý: Nếu tệp của bạn đã được lưu ở định dạng UNICODE, bạn nên lưu nội dung ở định dạng ANSI đúng cách nếu bạn muốn tệp của mình được Git phát hiện đúng cách.

Giải pháp 2: Kiểm tra tệp bạn đang cố gắng bỏ qua

Một điều kiện khác mà .gitignore hoạt động là tệp của bạn chưa phải là một phần của kho lưu trữ . Đây là một khía cạnh rất cần thiết vì nếu điều này là đúng, tệp sẽ không bị bỏ qua vì nó đã được thêm vào kho lưu trữ. Git không thể bỏ qua điều đó ngay cả khi bạn đặt tên hoặc quy tắc của nó trong tệp .gitignore. Vì vậy, về bản chất, Git chỉ bỏ qua các tệp không được theo dõi .

Bạn nên xem cấu trúc của mình (kho lưu trữ) và đảm bảo rằng tệp mà bạn hiện đang cố gắng bỏ qua không được thêm vào kho lưu trữ. Nếu đúng như vậy, bạn sẽ phải xóa tệp khỏi kho lưu trữ và sau khi các thay đổi mới nhất được cam kết, hãy thêm tên của nó vào .gitignore (bạn cũng có thể sao chép nội dung của tệp và sau khi xóa, hãy sao chép nó với một tên khác) .

Giải pháp 3: Thêm lại tệp vào kho lưu trữ

Nếu bạn đã thêm quy tắc vào .gitignore nhưng các tệp bạn muốn bỏ qua đã được thêm vào, chúng tôi có thể thêm lại các tệp. Thêm có nghĩa là chúng tôi sẽ xóa mọi thứ khỏi chỉ mục của Git và sau đó thêm lại mọi thứ vào kho lưu trữ của bạn. Khi chúng tôi thêm lại tệp từ đầu, các quy tắc sẽ được ghi nhớ mà bạn đã thêm trong .gitignore và chỉ những tệp chính xác mới được thêm vào.

Lưu ý: Bạn cũng nên sao lưu mã của mình ở một nơi khác trước khi thực hiện giải pháp này. Luôn luôn tốt để có một bản sao lưu đề phòng.

  1. Thực hiện lệnh sau. Thao tác này sẽ gỡ bỏ và xóa các đường dẫn đến tệp của bạn khỏi chỉ mục git theo cách đệ quy.
git rm -r --cached.
  1. Sau khi điều này được thực hiện, bạn nên thực hiện lệnh sau. Thao tác này sẽ thêm lại tất cả các tệp của bạn và vì .gitignore sẽ có các quy tắc, chỉ những tệp chính xác mới được cập nhật.
git thêm.
  1. Bây giờ chúng tôi sẽ cam kết tất cả các tệp của bạn trở lại chỉ mục bằng cách sử dụng mã bên dưới:
git commit -m ".gitignore hiện đang hoạt động"

Bây giờ, hãy kiểm tra các tệp của bạn và xem sự cố đã được giải quyết chưa và bạn có thể sử dụng lại .gitignore mà không gặp bất kỳ sự cố nào.