我的烦恼#
这是目前让我比较恼火的问题,好几次辛辛苦苦编辑好博客准备同步到仓库,到最后输入指令:
然后就会等待半分钟,最后毫无例外会显示传输不成功,之后就需要再一次对网页做一点点修改,保证有新内容的变动,之后就重新生成网站,重设仓库地址,同步代码:
1
2
3
4
5
6
7
8
| cd ..
hugo
cd public
git remote set-url origin https://github.com/yourusername/yourrepository.git
git init
git add .
git commit -m "some information"(通常是时间)
git push origin master
|
这还不一定成功,就很难受。所以就一直在寻找问题的解决方案。
下面添加一个断连后重新连接的方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| cd ..
hugo
cd public
git remote add origin https://github.com/yourusername/yourrepository.git
git remote -v
git remote remove origin(取消与远程仓库的连接)
git init(初始化仓库)
git remote add origin https://github.com/yourusername/yourrepository.git(连接新仓库)
git status(检查状态)
git branch(检查分支)
git checkout br(创建分支)(如果是重连就不需要)
git add .
git commit -m "some information"(通常是时间)
git push origin master/git push -u master(master就是你的分支名字)
git checkout main(切换到主分支)
git merge br(本地合并)
git push(推送到远程)
|
2025年2月17日发现,重启Git bash,然后对网页内容做一个小修改,重复推送,就可以解决,果然,重启可以解决百分之九十九的问题,其他百分之一可以重启两次。
稳定的连接#
2025年3月12日发现了一种稳定的连接方法,就是设置SSH keys,这是连接主机和Github仓库的稳定的方法,至少目前我在学习Flask同步项目的时候就没有断联过,除非网络设置有问题。
具体的步骤也是参照了这篇李辉写的Flask入门,我这个小白是货真价实的,之前不知道自己不懂,还不主动学习,所以就在看到这个连接方式后就追悔莫及,其实在这篇文章里面有介绍,但是我还是没有太过注意,希望之后我的的学习可以更加具体且细致。
具体方法是:
1.本地密钥生成#
来到你要同步的文件夹目录下,先运行:
这个命令是为了查看是否在目录下生成了本机的密钥,密钥保存在文件id_rsa.pub里面,需要注意的是,用户根目录的.ssh
文件夹,其中可能包含两个文件,id_rsa 和 id_rsa.pub,前者是私钥,不能泄露出去,后者是公钥,用于认证身份,就是我们要保存到 GitHub 上的密钥值。
当然,如果运行命令后显示没有这个文件No such file or directory
,就需要生成SSH密钥:
之后有可能会给提示,问你是否要保存到某某文件里面,一般按确认即可,如果需要自定义保存位置(例如避免覆盖已有密钥),输入新路径后回车:
弹出的问题:
1
2
3
| $ ssh-keygen
Generating public/private xxxxxxx key pair.
Enter file in which to save the key (~/.ssh/id_xxxxxxx):
|
然后你可以输入:
1
2
3
4
| $ ssh-keygen
Generating public/private xxxxxxx key pair.
Enter file in which to save the key (~/.ssh/id_xxxxxxx):
~/.ssh/id_123456
|
要注意路径需指向 .ssh
目录,且文件名不要含空格或特殊字符。
当然有时会提示是否覆盖:
输入 n
退出,改用其他文件名。
输入 y
覆盖(仅当确定旧密钥不再需要时)
之后生成你要的密钥后输入:
1
| cat ~/.ssh/id_xxxxxxx.pub
|
就会输出一段密钥,一般开头是
复制这个密钥,下一步使用
2.保存密钥到仓库#
登录GitHub,点击头像,点击settings
按钮,就弹出添加页面,之后点击New SSH key
,就会让你为这个ssh密钥命名并填入密钥,一般要避免名称重复,便于自己辨认。
最后点击保存
3.链接#
在目录文件夹下输入:
1
| git remote add origin git@github.com:your github name/your repository name.git
|
如果你第一次用Github,你可以去查一下上面语句是什么意思。
4.使用和自动化#
一般而言,这就是正确链接好了,你在修改内容后,就可以按照一下步骤同步了:
1
2
3
4
| git init
git add .
git commit -m "some information"(通常是时间)
git push origin master
|
这里在Ubuntu系统下可以写一个提交的脚本sub.sh
,新建文件并打开编辑(注意,下面的命令是在你的文件夹目录下没有sub.sh
的文件夹下,同时新建并打开编辑的指令,如果文件存在,会打开现有文件并编辑):
输入:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #!/bin/bash
# 出错就退出运行
set -e
# 生成静态文件
hugo --minify
# 进入 public 目录
cd public
# 初始化 Git 并提交到仓库 B
git init
git add .
git commit -m "Deploy: $(date)"
git push origin master
|
这就是一个简单的提交脚本。
但是为了自动化,需要在网页内容设置。
未完待续……