服务器装的宝塔,有一个网站,现在要将这个项目代码添加到github中。
首先我将代码下载到本地,忽略掉一些文件和目录后,推送到github.
如果将本地代码推送到github。请看其他文章。
然后再到服务器的目录,将代码与github的地址关联起来,下面主要讲这一部分:
因为此时网站和代码与github的代码是一致的,除了被忽略的外。
因为服务器的项目代码里还有一些/public/uploads目录被忽略,所以我不能使用git clone 重新下载一次。而只需要将项目代码与仓库关联起来
第一步, git init, 再git remote add [remote_repository] 再git pull origin main
首先出现
... ...
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
错误是:身份验证被拒绝,无法从远程代码库读取数据。这通常是由于缺少正确的访问权限或无法正确识别您的身份验证密钥引起的。
第二步,做 SSH 密钥进行身份验证的设置:
(1)生成 SSH 密钥对:运行以下命令
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
(2)添加公钥到 GitHub:在 GitHub 上登录到您的账户,点击右上角的头像,选择 "Settings"(设置)菜单。在左侧导航栏中选择 "SSH and GPG keys"(SSH 和 GPG 密钥),然后点击 "New SSH key"(新建 SSH 密钥)。在 "Title" 字段中,为您的密钥添加一个描述性的标题。然后,在 "Key" 字段中,将公钥文件 (~/.ssh/id_rsa.pub) 的内容复制粘贴到文本框中。最后,点击 "Add SSH key"(添加 SSH 密钥)。
第三步,再次执行 git pull origin main
The following untracked working tree files would be overwritten by merge:
错误:本地与远程冲突。
第四步,放弃服务器本身的,只取线上的(此时服务器和线上的其实一致,冲突的原因不知)。
(1) 执行以下命令来获取最新的远程分支
git fetch origin
这将从远程仓库(origin)获取最新的分支和提交。
(2) 执行以下命令来强制将本地分支重置到远程分支的最新提交
git reset --hard origin/main
这将会丢弃本地分支的所有更改,并将其重置为与远程主分支(origin/main)完全一致。
第五步,解锁 /public/.user.ini
当执行 git reset --hard origin/main 时,
error: unable to unlink old 'public/.user.ini': Operation not permitted
(解决办法:先解锁:sudo chattr -i public/.user.ini,再改为755权限)
第六步,解锁后,再重新执行:
git reset --hard origin/main
git pull origin main
这样就完成了。
* branch main -> FETCH_HEAD
Already up to date.
第七步,反省。本来我直接在 服务器里,把需要的代码推送到github。在本地直接git clone就好了。但有这个经验也是好的,当服务器的代码需要换github地址时,就采用这种办法关联。再注意,因为其中是直接使用 github的最新版本。所以放弃了服务器本身的。