一、项目初始推送
基本假设:
- 本地项目路径:
~/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