Computer >> Máy Tính >  >> Lập trình >> Lập trình

Gitignore không hoạt động? Hướng dẫn trợ giúp.

Tiêu đề nói lên tất cả. Có nhiều trường hợp bạn có thể đang khắc phục sự cố tệp .gitignore vì nó không hoạt động như mong đợi.

Tệp .gitignore đóng một vai trò quan trọng trong kho lưu trữ Git. Nếu tệp .gitignore của bạn không hoạt động, bạn có thể vô tình theo dõi các thay đổi cần được giữ kín. Một số thay đổi này có thể chứa thông tin nhạy cảm, chẳng hạn như khóa API.

Hai nguyên nhân khiến tệp .gitignore bị hỏng là:

  • Thêm tệp vào .gitignore sau khi bạn đã cam kết.
  • Đề cập đến tên tệp hoặc đường dẫn sai trong tệp .gitignore của bạn.

Chúng ta sẽ thảo luận cả hai vấn đề này trong hướng dẫn này và cách giải quyết chúng.

Tệp .gitignore là gì?

Tệp .gitignore chứa danh sách tất cả các tệp bạn không muốn lưu vào kho lưu trữ Git của mình. Tệp này thường được sử dụng để giữ các tệp cấu hình và môi trường bên ngoài kho lưu trữ. Những tệp này thường chứa thông tin cá nhân và không được nằm trong bất kỳ kho lưu trữ từ xa nào.

Tệp này phải được đặt tên và lưu một cách rõ ràng là .gitignore . Trên tệp văn bản thuần túy này, sau đó bạn sẽ thêm đường dẫn của tệp hoặc thư mục mà bạn muốn Git không theo dõi. Bất kỳ nội dung nào được thêm vào tệp này Git sẽ bỏ qua và không thêm vào cây theo dõi của nó.

Dưới đây là một ví dụ về nội dung tệp gitignore:

node_modules/
.env

Trên tệp này, về cơ bản, chúng tôi đang yêu cầu Git bỏ qua một tệp cụ thể. Đây là tệp .env, thường chứa các khóa API. Chúng tôi cũng bỏ qua thư mục node_module chứa tất cả các gói NPM đã cài đặt.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia chương trình đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Các tệp phổ biến cần bỏ qua bao gồm tệp .DS_Store, tệp .env và tệp cấu hình. Tệp .DS_Store thường được tìm thấy trên hệ điều hành macOS và không cần phải là một phần của kho lưu trữ Git.

Hầu hết các tệp .gitignore được đặt trong thư mục gốc của kho lưu trữ. Để tìm hiểu thêm về tệp .gitignore, hãy xem hướng dẫn tệp .gitignore dành cho người mới bắt đầu của chúng tôi.

Tình huống A:Thêm tệp vào .gitignore Sau khi cam kết

Chúng tôi có thể phàn nàn tại sao gitignore không hoạt động sau khi chúng tôi gửi nhầm một tệp được cho là sẽ bị bỏ qua. Vì vậy, chúng tôi thêm nó vào gitignore sau sự kiện đó và phàn nàn rằng Git vẫn đang theo dõi nó.

Lý do cho điều này là chúng ta cần thêm các tệp / thư mục trước khi cam kết chúng. Git đã theo dõi chúng, vì vậy để bỏ theo dõi chúng một lần nữa, chúng ta sẽ cần thực hiện lệnh sau:

git rm -rf --cached <path>

Phần đầu tiên git rm loại bỏ . –cached cờ chỉ định nó bị xóa khỏi chỉ mục nhưng vẫn ở trong thư mục cục bộ. r là loại bỏ đệ quy nếu được cung cấp một đường dẫn thư mục và f buộc nó. Nếu bạn chỉ làm việc với tệp và vẫn muốn giữ nó trên tệp cục bộ của mình:

git rm --cached <file>

Vì vậy, với điều này, bạn cho Git biết rằng bạn không muốn theo dõi tệp / thư mục được cung cấp nữa. Bây giờ hãy thử lại và gitignore của bạn sẽ hoạt động như bình thường . Chỉ cần nhớ rằng tệp / thư mục phải được chỉ định để gitignore hoạt động!

Tình huống B:Gitignore được tạo trước khi cam kết và tệp vẫn không theo dõi

Nếu .gitignore vẫn không theo dõi tệp, giải pháp có thể đơn giản là kiểm tra xem bạn đang đề cập đến tệp phù hợp. Bạn cần chỉ định chính xác tệp nào bạn muốn tệp .gitignore bỏ qua. Mọi lỗi chính tả hoặc tên đường dẫn không chính xác cần được bạn sửa theo cách thủ công.

Hãy xem xét ví dụ này:

*.pyyc

Tệp .gitignore cho Git biết những tệp nào cần bỏ qua, trong trường hợp này là tất cả các tệp .pyyc. Tuy nhiên, mục đích của chúng tôi là bỏ qua các tệp .pyc. Tệp .pyc là tệp cấu hình cho các chương trình Python. Tệp .gitignore của chúng tôi không biết điều này vì vậy chúng tôi cần sửa quy tắc của mình:

*.pyc

Kho lưu trữ của chúng tôi bây giờ sẽ bỏ qua tất cả các tệp .pyc.

Ngoài ra, hãy kiểm tra để đảm bảo rằng bạn không có bất kỳ khoảng trắng nào ở đầu hoặc cuối khai báo tệp / thư mục.

Kết luận

Chúng tôi đã thảo luận về một số tình huống và khả năng giải pháp cho các trường hợp khác nhau khi gitignore không hoạt động như mong đợi. Bài học kinh nghiệm chính là bạn phải hiểu vị trí của các tệp / thư mục để có thể thêm đường dẫn chính xác.

Bạn phải lưu ý rằng bạn nên thêm bất kỳ tệp nào cần được bỏ qua ngay khi bạn tạo chúng. Nếu bạn vô tình phạm phải lỗi này, rất may là chúng tôi có git rm -rf –cached . Lệnh này sẽ lấy một tệp ra khỏi quy trình làm việc Git. Sau đó, bạn có thể thêm vào gitignore để tệp của bạn sẽ bị bỏ qua.

Ghi chú cuối cùng :Có thể có những trường hợp khác mà git reset có thể hữu ích. Tôi đã viết một bài báo liên quan đến thiết lập lại git sẽ hữu ích trong những trường hợp này. Vì vậy, đặt lại Git sẽ giống như hoàn tác, quay ngược thời gian, vì vậy trong một số trường hợp, đó là điều bạn muốn.

Bạn có muốn tìm hiểu thêm về Git? Đọc hướng dẫn Cách học Git của chúng tôi. Trong hướng dẫn này, bạn sẽ tìm thấy lời khuyên của chuyên gia về cách học Git và hướng dẫn về các tài nguyên học tập hàng đầu.