Skip to main content
  1. Learn center
  2. Software Development
  3. Guides
  4. Git tutorial
  5. Lệnh & cài đặt Git
  6. Xử lý sự cố
GuidesSoftware DevelopmentBacklog
Git

Project and code management together.

Xử lý sự cố


Lỗi “Permission denied (publickey)” khi kết nối với kho lưu trữ từ xa bằng SSH

Trước hết, bạn sẽ muốn đảm bảo những điều sau:

  • URL có đúng không?
  • Khóa bí mật có được định cấu hình chính xác trong máy cục bộ không?
  • Khóa công khai có được định cấu hình chính xác trong máy từ xa không?

Bạn có thể xác minh cấu hình khóa công khai/bí mật tương ứng với kho lưu trữ từ xa Backlog bằng cách chạy lệnh sau:

$ ssh <space>@<space>.git.backlog.com

Thay <space> bằng không gian Backlog mà bạn sở hữu (ví dụ: cho không gian demo.backlog.com, sẽ là demo@demo.git.backlog.com)

Nếu cài đặt đúng, bạn sẽ thấy đầu ra sau. Nếu bạn thấy thông báo lỗi, hãy lặp lại các bước trên và đảm bảo rằng bạn đang làm đúng.

Hi yourname! You've successfully authenticated, but Backlog does not provide
  shell access.
  Connection to git.backlog.com closed.

Không thể sao chép kho lưu trữ từ xa qua URL HTTPS của nó

Trên các phiên bản Git cũ hơn, đôi khi bạn có thể gặp sự cố khi thực hiện thao tác đẩy hoặc kéo. Bạn nên sử dụng phiên bản Git mới nhất hoặc cao hơn v2. Nếu bạn đang sử dụng ứng dụng khách Git chẳng hạn như Source Tree hoặc TortoiseGit, hãy sử dụng phiên bản Git đi kèm với ứng dụng khách tương ứng.

Tôi được yêu cầu nhập mật khẩu mỗi khi tôi đẩy/kéo từ kho lưu trữ từ xa

Bạn có thể tránh nhập mật khẩu nhiều lần bằng cách định cấu hình như sau.

Windows

Bạn có thể sử dụng git-credential-winstore, nó sẽ chỉ hỏi mật khẩu của bạn trong lần đầu tiên bạn đẩy/kéo.

Mac

Bạn có thể sử dụng Sourcetree (mà chúng tôi đã trình bày trong chương trước) để liên kết với Mac Keychain. Điều này sẽ cho phép Git tìm ra thông tin đăng nhập nào sẽ sử dụng mỗi khi bạn kéo hoặc đẩy.

Bảng điều khiển

Trên Mac, bạn có thể sử dụng API thông tin đăng nhập Git để liên kết tên người dùng/mật khẩu với các thao tác Git. Nếu bạn sử dụng Homebrew, API thông tin xác thực Git được cài đặt tự động. Nếu không, bạn sẽ phải cài đặt thủ công.

Bạn có thể kiểm tra xem API thông tin xác thực đã được cài đặt chưa bằng lệnh bên dưới.

$ git credential-osxkeychain
  Usage: git credential-osxkeychain <get|store|erase>

Nếu API thông tin xác thực chưa được cài đặt, bạn sẽ thấy đầu ra bên dưới.

$ git credential-osxkeychain
  git: 'credential-osxkeychain' is not a git command. See 'git --help'.

Trong trường hợp đó, bạn có thể tải xuống và di chuyển các tệp vào /usr/local/bin.

$ curl -s -O http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain
$ chmod u+x git-credential-osxkeychain
$ mv git-credential-osxkeychain /usr/local/bin

Sau khi hoàn tất cài đặt, hãy chạy lệnh sau bên dưới để kích hoạt API thông tin xác thực.

git config --global credential.helper osxkeychain

Các thay đổi được đẩy tới kho lưu trữ từ xa không được phản ánh ở đó

Bạn có thể bắt gặp tin nhắn sau khi thực hiện thao tác đẩy. Điều đó thường xảy ra khi bạn đang đẩy từ một kho lưu trữ cục bộ mới.

$ git push
  No refs in common and none specified; doing nothing.
  Perhaps you should specify a branch such as 'main'.
  Everything up-to-date

Bằng cách bỏ qua tên nhánh khi thực hiện đẩy, theo mặc định, Git sẽ cho rằng bạn đang cố đẩy thay đổi hiện tại sang nhánh từ xa có cùng tên với nhánh cục bộ. Điều này xảy ra nếu nhánh chính chưa được tạo trong kho lưu trữ từ xa. (Chúng ta đang đẩy từ nhánh chính cục bộ.) Trong trường hợp này, chúng ta sẽ phải sử dụng rõ ràng tên nhánh khi thực hiện thao tác đẩy.

$ git push -u origin main

Bằng cách đó, nhánh chính sẽ được tạo tự động trong kho lưu trữ từ xa. Lần tới khi bạn chạy thao tác đẩy, bạn có thể bỏ qua tên nhánh.

Subscribe to our newsletter

Learn with Nulab to bring your best ideas to life