我正在将VSCode使用到位于WSL2VM中的项目文件夹(符号链接)中。我用SSH和终端从Bitbucket克隆了我的回购。
在左下角,它表示WSL: Ubuntu,所以我目前正在重新使用它。一切都好
如果单击Git分支指示符,可以看到本地分支和远程分支。一切都好
问题是,当我在本地提交之后单击以同步所有内容时,它将永远旋转。嗯,不完全是,我永远失去了耐心.目前大约30分钟对当前的测试。
如果我在终点站做git push,一切都会如愿以偿。
有人知道它为什么要这么做吗?我怎样才能解决这个问题?
我在VSCode中的Git输出不断地返回这个git rev-parse --show-toplevel
我为git config和user.name做了user.email
SSH键在Bitbucket上设置。Windows和WSL 2使用的是相同的公钥/私钥。
谢谢
发布于 2019-09-19 20:45:57
2021-02-05更新
这个问题最近得到了很多意见,我觉得我需要给出一个更彻底的解释。最初的答案是在WSL 2还处于测试阶段时编写的。现在一切都已经发展,从SSH密钥中删除密码可能会导致一些漏洞。因此,在进一步讨论这个问题之前,请看一下使用带有空密码的SSH密钥可以吗?的文章
问问自己,它是否安全,你可以移除它。
我不知道这个原始问题是否还存在问题。写完这个问题后不久,我就放弃了WSL的网页开发。
原版
我解决了我的问题。所以,对于那些想让WSL 2尝试并遇到这个问题的人来说,问题是SSH-键的密码。
resolving-hangs-when-doing-a-git-push-or-sync-on-an-ssh-host
在SSH主机上执行Git推送或同步时,解析挂起 如果使用SSH克隆Git存储库,并且SSH密钥具有密码,则VS Code的拉和同步功能在远程运行时可能挂起。要么使用没有密码的SSH密钥,要么使用HTTPS克隆,要么从命令行运行git push来解决这个问题。
如果要删除密码,请使用$ ssh-keygen -p,如在以下问题中提到的:https://stackoverflow.com/a/112409/5543999
发布于 2020-08-17 13:18:28
您也可以通过使用ssh-agent来解决这个问题。
将以下内容添加到您的~/..bashrc中,当您打开一个终端时,如果没有解锁,就会提示您解锁您的密钥。
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env此外,您还可以配置添加到ssh-代理的密钥的过期时间,如下所示- https://unix.stackexchange.com/questions/122511/configuring-the-default-timeout-for-the-ssh-agent
发布于 2020-02-14 11:02:00
宁可从命令行中执行推拉操作,也不愿删除密码!
https://stackoverflow.com/questions/58017521
复制相似问题