Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Bảo Trì Máy Tính

Khắc phục lỗi 'Fatal: Origin Does Not Appear to be a Git Repository' – Hướng dẫn từng bước

Git là hệ thống kiểm soát phiên bản phân tán chủ yếu dùng để theo dõi thay đổi trong mã nguồn khi phát triển phần mềm. GitHub là dịch vụ lưu trữ trực tuyến cho kiểm soát phiên bản dựa trên Git. Cả hai dịch vụ này được dùng rộng rãi trong phát triển phần mềm. Tuy nhiên, gần đây có nhiều báo cáo người dùng không thể thực thi lệnh "git".

Bạn không đơn độc. Bạn nghĩ mình đã thành thạo quy trình Git cho đến khi gặp lỗi chưa từng thấy. Gần như không thể tránh khỏi các thông báo lỗi khó hiểu và đôi khi đáng sợ khi làm việc với Git, vì vậy điều đầu tiên cần nhớ là người dùng Git khác có thể đồng cảm với hoàn cảnh của bạn.

Người dùng Git không lạ lẫm với lỗi khó chịu Git Fatal: 'Origin' does not appear to be a git repository . Và tìm nguyên nhân gốc rễ có thể khó khăn nếu bạn không biết nhìn đâu. Nhưng, trước khi bỏ Git, bạn có thể nhanh chóng học nguyên nhân gây ra lỗi này, cách chẩn đoán, và cách tránh nó trong tương lai.

Mẹo chuyên nghiệp: Quét Mac để tìm các vấn đề về hiệu suất, tệp rác, ứng dụng độc hại và mối đe dọa bảo mật
có thể gây ra sự cố hệ thống hoặc hiệu suất chậm.

Vấn đề Fatal: 'Origin' does not appear to be a git repository là gì?

Lệnh git init khởi tạo việc tạo kho Git mới. Lệnh này đơn giản thiết lập một thư mục làm kho Git. Nó không kết nối kho này với kho khác.

Lệnh git clone, mặt khác, kết nối kho cục bộ với kho từ xa. Điều này là vì Git biết mã của dự án xuất phát từ đâu và dùng vị trí bạn clone để dự đoán nơi bạn sẽ đẩy commit.

Khi bạn tạo kho mới và cố gắng commit mã mà không trước đó chỉ dẫn Git nơi mã nên được đẩy, bạn sẽ nhận lỗi "fatal: 'origin' does not appear to be a git repository".

Kho Git (Git Repository) là gì?

Kho GIT chứa tập hợp tệp từ các phiên bản khác nhau của dự án. Các tệp này được nhập từ kho vào máy chủ cục bộ của người dùng để cập nhật và sửa đổi nội dung tệp. Hệ thống Kiểm soát Phiên bản (VCS - Version Control System) được dùng để tạo các phiên bản này và lưu chúng tại vị trí gọi là kho. Cloning (Sao chép) là quá trình sao chép nội dung từ kho Git hiện có bằng các công cụ Git khác nhau.

Khi quá trình cloning hoàn tất, người dùng nhận được toàn bộ kho trên máy cục bộ. Sau khi cloning xong, Git giả định tất cả công việc tương lai trên kho sẽ được làm như người dùng. Người dùng cũng có thể tạo kho mới hoặc xóa kho hiện có. Cách đơn giản nhất xóa kho là xóa thư mục kho.

Khi làm việc với kho Git, bạn thực chất làm việc với các thư mục đã được cấu hình thành dự án Git. Git có thể dùng để tạo gần như bất kỳ thư mục nào trên máy cục bộ hoặc máy chủ từ xa.

Để chẩn đoán chính xác tại sao dự án Git không chấp nhận lệnh hoặc tại sao kho từ xa không được nhận diện, bạn phải hiểu trước Git tìm gì khi cố gắng tương tác với kho.

Bất kỳ thư mục nào, cục bộ hoặc từ xa, phải được Git-initialized (khởi tạo Git), nghĩa là bạn phải chạy lệnh sau: git init

Nếu bạn chạy lệnh này trong thư mục cục bộ, thư mục đó chuyển thành kho Git. Thông báo thành công sẽ xuất hiện, cho biết lệnh thành công. Bạn cũng sẽ nhận thấy mọi kho Git có thư mục .git nơi tệp quan trọng và điểm tham chiếu được lưu.

Mặt khác, thông thường dùng tùy chọn –bare khi khởi tạo kho từ xa: git init –bare

Điều này tạo kho "bare" (trống), về cơ bản là thư mục trống đã được khởi tạo với Git và có thể nhận và chạy lệnh Git gửi đến. Kho bare là "trung tâm" tuyệt vời từ đó một hoặc nhiều người dùng Git có thể clone, push, và pull dự án.

Kho Git không tự động liên kết với kho từ xa. Bạn sẽ nhận lỗi "fatal: 'origin' does not appear to be a git repository" nếu bạn cố đẩy thay đổi đến kho từ xa mà không chỉ định vị trí trước.

Nguyên nhân gây ra lỗi Fatal 'Origin' does not appear to be a git repository ?

Khi bạn cố clone hoặc chạy lệnh khác trong thư mục không được nhận diện là kho Git, lỗi "fatal: 'origin' does not appear to be a git repository" xảy ra. Có thể thư mục hoặc đường dẫn tệp từ xa không khởi tạo Git, hoặc đường dẫn tệp bạn cố truy cập làm kho hoạt động là không chính xác. Dưới đây là các yếu tố kích hoạt lỗi này:

  • Thiếu Origin: Lỗi này xảy ra khi trường "Origin" bị thiếu. Một số lệnh không hoạt động đúng nếu tham chiếu "Github-Fork" bị thiếu.
  • URL không chính xác: Trong một số trường hợp, cấu hình URL do ứng dụng đặt có thể không chính xác và phải thay đổi. Kết quả, một số lệnh có thể không hoạt động đúng.

Git về cơ bản chỉ ra kho bạn đang cố làm việc không thể nhận diện là dự án Git. Đó là lý do tại sao, nếu bạn tin bạn đã thiết lập mọi thứ đúng, lỗi có thể khó chịu. Nhưng đừng lo, một lỗi đánh máy đơn giản có thể gây ra lỗi.

Chúng ta sẽ đến giải pháp ngay để bạn có hiểu biết cơ bản về bản chất vấn đề. Đọc tiếp để biết bạn có thể làm gì để chẩn đoán và xử lý lỗi này.

Cách khắc phục lỗi Fatal: 'Origin/Master' does not appear to be a git repository'

Gặp lỗi này có thể khó chịu vì nó gây gián đoạn và tốn thời gian. Cách tránh các lỗi như "fatal origin does not appear to be a git repository" là quét thiết bị thường xuyên với Outbyte MacAries. Công cụ này ngăn các vấn đề nhỏ tích lũy và biến thành hỗn loạn.

Nhưng nếu bạn gặp lỗi này, các bước sau nên dễ dàng giải quyết cho bạn:

Sửa lỗi #1: Thêm Origin.

Khi bạn cố commit vào kho git mới tạo bằng lệnh git init, bạn nhận lỗi "fatal: 'origin' does not appear to be a git repository". Điều này do git init không liên kết kho cục bộ với kho từ xa. Bạn có thể kiểm tra bằng cách gõ: git remote -v

Nếu không có kho từ xa tên origin, bạn nên thêm thủ công bằng giải pháp dưới đây.

  1. Nhấn cùng lúc nút "Command" và "Space". Điều này nên mở Spotlight.
  2. Gõ "Terminal" và nhấn "Return."
  3. Nhập lệnh sau và nhấn "Return": git remote -v
  4. Kiểm tra xem kho từ xa tên "Origin" có được liệt kê không.
  5. Nếu không, nghĩa là "Origin" bị thiếu.
  6. Dùng lệnh sau để thêm Origin: git remote add origin url/to/your/fork

Kiểm tra xem vấn đề vẫn tồn tại không.

Sửa lỗi #2: Kiểm tra đường dẫn tệp kho từ xa.

Khi cố clone, push, hoặc pull nội dung từ kho từ xa, người dùng Git thường gặp lỗi "origin does not appear to be a git repository fatal". Hãy chắc chắn kiểm tra kỹ đường dẫn tệp kho từ xa. Có một số cách làm.

Nếu bạn đang clone, kiểm tra lại bạn có quyền truy cập kho cần thiết. Trừ khi bạn clone kho công khai trên GitHub, bạn có thể kết nối qua SSH. Tương tự, bạn nên kiểm tra cú pháp lệnh clone. Đây là ví dụ lệnh clone cơ bản kết nối với kho qua HTTP: git clone https://github.com/WordPress/WordPress.git

Khi bạn chạy lệnh này trong trình giả lập terminal ưa thích, nó sẽ tạo thư mục "WordPress" chứa tất cả tệp lõi WordPress. Nó cũng sẽ bao gồm thư mục .git và toàn bộ lịch sử dự án. Kết quả, thư mục này sẽ là kho git cục bộ hoạt động đầy đủ. Nó cũng sẽ có thông tin kho từ xa (tại GitHub) được thiết lập đúng.

Tuy nhiên, nếu bạn giao tiếp với máy chủ riêng không có truy cập HTTP, bạn phải sửa cú pháp để bao gồm người dùng máy chủ với đặc quyền thích hợp. Đó là lý do, khi cấu hình máy chủ Git riêng, tốt nhất tạo "Git" người dùng đặc biệt với quyền truy cập kho: git clone admin@wsxdn.com:/home/user/production.git

Khác với biến thể HTTP từ GitHub, URL clone này bao gồm admin@wsxdn.com Trong trường hợp này, "user" là người dùng máy chủ có quyền truy cập và đặc quyền kho Git của máy chủ. Tên máy chủ, tên miền, hoặc địa chỉ IP của máy chủ bạn cố liên lạc là đích. Khai báo người dùng và máy chủ được tách khỏi đường dẫn tệp bằng dấu hai chấm (:).

Đường dẫn tệp quan trọng trong trường hợp này. Vị trí và tên chính xác của kho được chỉ ra bởi đường dẫn tệp. Kho trong ví dụ trước là thư mục production.git.

Luôn dùng phần mở rộng .git cho thư mục kho. Thư mục production.git nằm trong thư mục home của người dùng, là /home/user.

Bạn phải sao chép chính xác cú pháp này hoặc bạn sẽ nhận lỗi "fatal: 'origin' does not appear to be a git repository".

Sửa lỗi #3: Đổi Origin sang Master.

Nếu bạn đang cố pull từ Master, bạn phải trước đổi origin sang Master trước khi cố thêm hoặc xóa kho từ xa. Kết quả, ở bước này, chúng ta sẽ đổi Origin sang Master. Để làm vậy:

  1. Nhấn cùng lúc nút "Command" và "Space". Điều này nên mở Spotlight.
  2. Gõ "Terminal" và nhấn "Return."
  3. Nhập lệnh ở đây để đổi Origin sang master: git pull origin master

Kiểm tra xem vấn đề "fatal: 'origin' does not appear to be a git repository" đã biến mất chưa.

Sửa lỗi #4: Sửa tệp HEAD bị hỏng.

Nếu các bước khắc phục trên không giải quyết vấn đề, bạn có thể có vấn đề với tệp HEAD. Tệp này chứa một dòng đóng vai trò con trỏ đến nhánh hiện tại.

Nếu bạn mới với Git, thuật ngữ "branch" (nhánh) cũng có thể lạ. Nhánh là phiên bản kho bạn có thể dùng để kiểm tra thay đổi dự án. Mọi kho có nhánh chính làm nguồn sự thật và nên là phiên bản triển khai trong sản xuất. Nếu bạn muốn thay đổi nhánh chính, bạn có thể tạo phiên bản riêng của dự án, hoặc nhánh, để test thay đổi. Git sẽ cập nhật tệp HEAD để phản ánh nhánh làm việc hiện tại khi bạn tạo nhánh mới.

Tuy nhiên, tệp HEAD có thể bị hỏng trong một số trường hợp, dẫn đến lỗi Fatal: 'Origin' does not appear to be a Git Repository . Để kiểm tra tệp HEAD, bạn có thể dùng lệnh cat .git/HEAD để in nội dung.

Khi chạy lệnh này, bạn nên thấy tên nhánh hiện tại. Nếu nó không bao gồm nhánh hiện tại bạn đang làm, bạn phải cập nhật tệp. Bạn có thể làm bằng cách gõ lệnh sau: echo 'ref: refs/heads/<branch_name>' > .git/HEAD

Kết luận

Bạn không cần bị stress khi gặp lỗi Fatal: 'Origin' does not appear to be a Git Repository. Nếu nhận vấn đề này, hãy nhớ Git đang cố thông báo thư mục làm việc hiện tại không được theo dõi, vì vậy hãy làm theo các bước cơ bản trong bài viết, tóm tắt dưới đây:

  • Thêm Origin thủ công.
  • Kiểm tra bạn gõ tên thư mục đúng chưa.
  • Kiểm tra bạn tạo kho đúng chưa. Nếu thư mục thiếu kho .git, dùng git init để khởi tạo đúng kho hoặc clone kho hiện có.
  • Kiểm tra tệp HEAD trên nhánh hiện tại có thông tin đúng không. Nếu không, đổi nội dung tệp thành ref: refs/heads/<branch_name>

Làm theo các bước khắc phục sự cố trên sẽ cho phép bạn giải quyết lỗi trong hầu hết mọi trường hợp chỉ trong vài phút.