乱七八糟的问题们

写在最前面-遗留问题

笑死,博客又很久不更新了,最近在写一个web的作业,想着要不放到GitHub上去吧,把git又拾起来看一下。然后更新网页的时候忘记博客怎么上传了。。。

想了很久,想起来原来我是建立在hexo上的啊!(甚至忘了当时怎么建站的了…看来笔记还是很重要的)不是git语法 那就顺便在这里记一下 省的每次都搜

1
2
3
4
hexo s //预览 hexo server
hexo g //生成静态文件 hexo generate
hexo d //部署上去 hexo deploy
hexo n <文件名> //生成新的博文

图床问题

之前打igem的时候其实就遇到过图床问题。不过后来发现官方那边给配好了图床,还挺好用的,于是又搁置了。

今天登陆picgo发现我竟然把图床配好了,实在是很神奇,已经想不起来怎么配的了…

测试一下:

测试一下

竟然可以用(? 不是说有防盗链问题吗

参考链接

太好用了。。相比之下我之前我把图片传到CSDN的博客,拿CSDN当图床也太蠢了

GitHub仓库管理和绑定

其实之前用gitlab的时候弄过一下子,但是我又忘了(阿巴阿巴

首先因为我是直接在本地git init建好项目

随后又在GitHub上搭建仓库(不是空的,自带了readme)

所以出现了版本打架问题

其实如果先在GitHub上建好仓库,直接git clone到本地就好了

使用 HTTPS连接到 GitHub

仓库的url在这里

url

按照以下步骤:

  • 使用 git add 命令将文件添加到 Git 仓库的暂存区。

  • 使用 git commit 命令来提交暂存区的更改到本地仓库,同时附带一条提交信息,例如:git commit -m "Initial commit"

  • 使用以下命令将本地仓库与 GitHub 仓库关联,并将本地更改推送到 GitHub 仓库。

    1
    2
    3
    git remote add origin https://github.com/wxhxyyzm/tospeech.git
    git branch -M main
    git push -u origin main

当时有个问题,就是最后git push的时候报错fatal: unable to access 'https://github.com/wxhxyyzm/tospeech/': Failed to connect to github.com port 443 after 21076 ms: Timed out

说是网络和代理有问题,当时没仔细检查,就直接换了使用 SSH 访问

使用 SSH连接到 GitHub

步骤如下:

  1. 生成 SSH 密钥

    • 打开命令行终端。

    • 运行以下命令生成 SSH 密钥对:

      1
      ssh-keygen -t ed25519 -C wxhxyyzm@163.com
    • 在上述命令中,邮箱就是在 GitHub 上注册的电子邮件地址。

    • 默认情况下,SSH 密钥将保存在用户主目录的 .ssh 文件夹中。

  2. 添加 SSH 密钥到 SSH 代理

    • 使用 SSH 代理,可以运行以下命令来将 SSH 密钥添加到代理,以便无需每次输入密码:

      1
      ssh-add ~/.ssh/id_ed25519
  3. 添加公钥到 GitHub 帐户

    • 复制公钥,可以使用以下命令来将公钥内容复制到剪贴板:

      1
      clip < ~/.ssh/id_ed25519.pub

      或者直接找到文件用txt打开,复制粘贴

    • 登录到GitHub 帐户。

    • 在右上角点击头像,然后选择 “Settings”。

    • 在左侧边栏中,选择 “SSH and GPG keys”。

    • 点击 “New SSH key”。

    • 在 “Key” 字段中,粘贴公钥内容。

    • 给密钥一个描述(Title),以便识别。

    • 点击 “Add SSH key”。

    如图:

    ssh

  4. 使用 SSH URL 连接到 GitHub

    • 在GitHub 仓库页面上,找到 SSH URL。(在HTTPS旁边)

    • 使用以下命令将本地仓库与 GitHub 仓库关联,并将本地更改推送到 GitHub 仓库。确保替换 <GitHub SSH URL> 为 GitHub 仓库 SSH URL:

      1
      2
      3
      bashCopy codegit remote add origin <GitHub SSH URL>
      git branch -M main # 如果你的默认分支是 main
      git push -u origin main # 如果你的默认分支是 main

现在,项目将使用 SSH 连接到 GitHub,而不是 HTTPS。

以上是GPT写的办法,步骤中有一些bug,还有这个参考链接

问题

密钥问题

有这样的报错信息C:\Users\wxhxy>ssh-add ~/.ssh/id_ed25519 Error connecting to agent: No such file or directory

发现是没启动代理(存疑),我之前明明设置的都没问题

解决办法如下:

在Windows上,可以使用以下方式来启动SSH代理并添加SSH密钥:

  1. 启动SSH代理

    打开一个Git Bash或Windows命令提示符窗口,并执行以下命令来启动SSH代理:

    1
    eval $(ssh-agent)

    或者,如果使用Windows命令提示符,可以使用以下命令:

    1
    ssh-agent
  2. 添加SSH密钥

    在同一终端窗口中,执行以下命令来添加SSH密钥:

    1
    ssh-add ~/.ssh/id_ed25519

确保已经在正确的目录中,~/.ssh/id_ed25519 是SSH私钥的路径。如果在执行命令时遇到问题,请检查SSH密钥的路径是否正确,确保文件存在。

分支问题

这一块我遇到一堆问题 检查自己的url没问题

报错

1
2
3
4
5
6
7
8
D:\ABOUT\大三\人机交互\ToSpeech>git push
fatal: The current branch main has no upstream branch.
To push the current branch and set the remote as upstream, use

git push --set-upstream origin main

To have this happen automatically for branches without a tracking
upstream, see 'push.autoSetupRemote' in 'git help config'

解决办法:

这个错误消息表明 Git 发现当前的分支 main 没有与远程分支关联。为了解决这个问题,可以按照建议使用 --set-upstream 选项将本地分支与远程分支关联起来,并推送更改到远程仓库。执行以下命令:

1
git push --set-upstream origin main

这将把 main 分支与 origin 远程分支关联起来,并将本地分支更改推送到远程仓库。之后,可以使用 git push 来推送更改,不再需要指定 --set-upstream 选项。

继续报错

1
2
3
4
5
6
7
8
9
D:\ABOUT\大三\人机交互\ToSpeech>git push --set-upstream origin main
To github.com:wxhxyyzm/tospeech.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'github.com:wxhxyyzm/tospeech.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details

说是表明本地分支 main 与远程分支存在冲突,后面试了几个办法都有问题

后来找到解决办法就是之前说的版本问题

因为我在本地项目里面安装过一些包了,同时远程仓库又有readme,不是空的

解决办法就是强制合并

git pull --allow-unrelated-histories

不知道中间进行了什么奇怪的操作,导致分支起点不一样了,就很见鬼。

这样git pull之后再git push,就没问题了

image-20231102204014952

泪目,怎么有人愚蠢的问题一而再再而三的搞不明白

代理问题

基本上和这个博客说的差不多参考链接

应该就是挂梯子的问题,反正后来没搞明白,直接把梯子关了,就好了

(计网学了和没学一样 感觉很多东西都比较迷糊

我的评价:不如GPT 人工智能什么时候把我优化掉