菜单导航

开发故事
GitHub常用命令,一篇说的清清楚楚
开发故事

GitHub常用命令,一篇说的清清楚楚

野盐
2025-05-12

在 GitHub 上创建一个全新的空仓库

  • 登录 GitHub。

  • 点击页面右上角的 + 号,选择 New repository (新建仓库)。

  • 填写仓库名称(例如:wildsalt.me)。

  • 不要勾选 Add a README fileAdd .gitignoreChoose 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

版权声明

本文为「野盐」原创内容,图片个人摄影 / 手绘 / AIGC,后期 PhotoMator / Procreate,版权归「野盐」所有。未经授权,禁止用于商业用途,禁止抹除水印,禁止转发至小红书等平台。转载请注明出处与链接并保留本声明。

...

评论 (0)

评论将以随机ID显示
野盐

野盐

@wildsalt.me

推荐阅读

Certbot 在 Nginx 为域名自动配置 SSL
开发故事

Certbot 在 Nginx 为域名自动配置 SSL

野盐 | 2025-07-07

Certbot 让 HTTPS 证书续期变得简单,自动为 Nginx 配置 SSL,告别手动操作

10
小型工具性网站,利用长尾关键词获取搜索流量
开发故事

小型工具性网站,利用长尾关键词获取搜索流量

野盐 | 2025-07-02

小工具,大流量:长尾关键词如何成为小众网站的隐形金矿

16
Automate reddit video creation with n8n待验证
开发故事

Automate reddit video creation with n8n待验证

野盐 | 2025-06-11

"用n8n自动化工具将Reddit帖子转化为视频的完整工作流定义,包含从内容抓取到视频渲染的每个技术细节"

36