故障排除
SSH/HTTPS
使用 SSH 连接到远程存储库时出现“Permission denied (publickey)”错误
首先,您需要确保以下几点:
- URL 是否正确?
- 密钥是否在本地机器中正确配置?
- 公钥是否在远程正确配置?
您可以通过运行以下命令,来验证与 Backlog 远程存储库对应的公钥/密钥配置:
$ ssh <space>@<space>.git.backlog.com
用您拥有的 Backlog 空间取代<space>
。(例如,对于空间demo.backlog.com
,它将是demo@demo.git.backlog.com
)
如果设置正确,您将看到以下输出。如果您看到错误消息,请重复上述步骤并确保您做对了。
Hi yourname! You've successfully authenticated, but Backlog does not provide
shell access.
Connection to git.backlog.com closed.
无法通过其 HTTPS URL 克隆远程存储库
在旧版的 Git 上,您可能偶尔会在执行推送或拉取时遇到问题。建议您使用最新的 Git 版本或高于 v2 的版本。如果您使用的是 Source Tree 或 TortoiseGit 等 Git 客户端,请使用相应客户端附带的 Git 版本。
每次我从远程存储库推送/拉取时,我都会被要求输入密码
您可以通过如下配置避免多次输入密码。
Windows
您可以使用 git-credential-winstore,它只会在您第一次推送/拉取时询问您的密码。
Mac
您可以使用 Sourcetree (我们在前面的章节中介绍过) 与 Mac Keychain 链接。这将允许 Git 在您每次拉取或推送时找出要使用的凭据。
Console
在 Mac 上,您可以使用 Git 的凭据 API,将用户名/密码与 Git 操作链接。如果您使用 Homebrew,Git 凭据 API 会自动安装。否则,您将必须手动安装它。
您可以使用以下命令检查是否安装了凭据 API。
$ git credential-osxkeychain
Usage: git credential-osxkeychain <get|store|erase>
如果未安装 API 凭据,您将看到以下输出。
$ git credential-osxkeychain
git: 'credential-osxkeychain' is not a git command. See 'git --help'.
在这种情况下,您可以下载它,并将文件移动到 /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
完成安装后,运行以下命令以激活 API 凭据。
git config --global credential.helper osxkeychain
推送到远程存储库的更改没有反映在那里
执行推送时,您可能会遇到以下消息。当您从新的本地存储库推送时,通常会发生这种情况。
$ git push
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'main'.
Everything up-to-date
通过在执行推送时省略分支名称,Git 将默认假定您正在尝试将当前更改推送到与本地分支同名的远程分支。如果尚未在远程存储库中创建主分支,则会发生这种情况。(我们从本地主分支推送。)在这种情况下,我们将必须在执行推送时明确使用分支名称。
$ git push -u origin main
通过这样做,主分支将自动在远程存储库中创建。您下次运行推送时,可以省略分支名称。