在 GitHub 上创建一个全新的空仓库
登录 GitHub。
点击页面右上角的
+
号,选择New repository
(新建仓库)。填写仓库名称(例如:
wildsalt.me
)。不要勾选
Add a README file
、Add .gitignore
或Choose a license
。将是一个完全空白的仓库。点击
Create repository
(创建仓库)。
在服务器上删除旧的 Git 仓库并初始化新的
删除旧的
.git
文件夹: 这个文件夹包含了旧的 Git 历史。
cd /var/www/wildsalt.me
rm -rf .git
初始化新的 Git 仓库:
git init
设置 Git 用户名和邮箱
git config user.name "mygithubname"
git config user.email "my@email.com"
添加
.gitignore
文件并处理敏感文件
首次提交到新仓库
暂存所有文件 (除了被
.gitignore
忽略的文件):
git add .
进行首次提交:
git commit -m "feat: Initial commit for new repository"
关联到新的 GitHub 仓库并推送
将本地仓库关联到新创建的 GitHub 仓库。
git remote add origin https://github.com/GitHub用户名/仓库名.git
将本地 master (或 main) 分支推送到远程 main 分支:
注意: GitHub 现在的默认主分支通常是 main。所以我们直接推送到 main。
git branch -M main # 将本地分支从 master 重命名为 main (如果当前是master)
git push -u origin main # 推送并设置远程跟踪
将 GitHub 仓库拉取到本地开发目录
清理本地旧的 Git 信息,删除
.git
文件夹
(在 Linux/macOS 上是 rm -rf .git
,但在 Windows PowerShell 中用 Remove-Item
)
Remove-Item -Recurse -Force .\.git
从 GitHub 克隆最新的仓库(空目录的情况)
git clone https://github.com/GitHub用户名/仓库名.git .
清空
本地仓库
目录
Remove-Item -Path * -Recurse -Force
拉取并重置本地仓库,同时保留特定文件
git remote add origin https://github.com/GitHub用户名/仓库名.git
git fetch origin
git reset --hard origin/main
git fetch origin
:从远程仓库下载所有新的提交和分支信息,但不会合并到工作目录。
git reset --hard origin/main
:这会将本地工作目录和 Git 历史完全重置为远程origin/main
分支的状态。这意味着所有不在.gitignore
中且与远程不匹配的本地文件都会被删除或覆盖。
这两个命令的作用和顺序
git fetch origin:
作用: 这个命令的作用是从名为 origin 的远程仓库(也就是 GitHub 仓库)下载最新的数据(包括提交、分支信息等),但不会自动合并到当前的工作区。它只是把远程仓库的最新状态同步到本地 Git 数据库中,以 origin/main(或其他远程分支名称)的形式存在。
比喻: 就像收到了一个快递包裹(远程仓库的最新代码),但还没拆开包装,也没有把它放到房间(工作区)里。
git reset --hard origin/main:
作用: 这个命令的作用是把本地当前分支(通常是现在所在的 master 或 main 分支)的指针,以及本地工作区和暂存区,强制地重置为 origin/main 所指向的那个状态。
比喻: 拆开了快递包裹,然后把包裹里的东西强制地放到了房间里,同时把房间里原来所有不属于这个包裹的东西都清除了。
Failed to connect to github.com port 443 after 21145 ms: Could not connect to server
出现这种错误一般都意味着
hosts
文件需要修改
服务器未改动文件的情况下
git pull origin main