4、github推送项目标准流程

  1. 一、项目初始推送
  2. 二、通用同步方法
  3. 三、本地还原到 GitHub 上的最新代码状态
    1. 推荐方案:彻底重置本地为远程最新状态(最干净)

一、项目初始推送

基本假设:

  • 本地项目路径:~/code/my_project
  • 远程仓库地址:git@github.com:yourname/my_project.git(SSH 方式)
  • 使用默认分支名 main

背景知识:

步骤 要求 如何验证
远程仓库 必须是空仓库(未初始化 README / .gitignore) 在 GitHub 创建时不要勾选 “Add a README”
本地项目 目录不能完全为空(至少有一个文件) ls 看是否有代码/README
SSH 配置 已配置 SSH 密钥且通过认证 ssh -T git@github.com 显示成功

初始化本地仓库:

注意:确保来到项目的根文件夹,而非子文件夹

git init

添加所有文件到暂存区:

git add .

首次提交:

git commit -m "initial commit"

关联远程仓库:

git remote add origin git@github.com:yourname/my_project.git

推送并设置上游分支(-u 只需首次)

git push -u origin main

二、通用同步方法

查看修改状态(可选但推荐):

git status

添加修改并提交:

git add . # 或 git add 具体文件 
git commit -m "feat: update login logic"

推送到远程仓库:

git push

三、本地还原到 GitHub 上的最新代码状态

推荐方案:彻底重置本地为远程最新状态(最干净)

不在乎本地任何未提交或已提交但未推送的更改,只想完全回到 origin/main(或你用的分支)的状态:

# 1. 确保你在正确的分支(比如 main)
git checkout main
# 2. 获取远程最新信息(不合并)
git fetch origin
# 3. 强制将本地分支重置为远程分支状态
git reset --hard origin/main
# 4. (可选)清理本地新增的、未跟踪的文件和目录
git clean -fd
  • git fetch origin:只下载远程最新数据,不改变本地工作区
  • git reset --hard origin/main
    • 丢弃所有本地提交(如果有的话);
    • 丢弃所有已暂存/未暂存的修改
    • 将工作区和 HEAD 完全对齐到 origin/main
  • git clean -fd
    • -f:强制删除;
    • -d:删除目录;
    • 清理那些从未被 Git 跟踪过的新文件(比如你新建的 .py 文件),这些 reset --hard 不会删。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com
Obsidian