一、完整上传代码流程
场景一:本地全新项目(第一次上传)
# 1. 初始化 git 仓库(生成隐藏的 .git 文件夹) git init 2. 把所有文件加入暂存区 git add . 只指定单个文件 git add 文件名 3. 提交到本地仓库,写提交备注 git commit -m "第一次提交:初始化项目" 4. 关联远程仓库(复制 Gitee/GitHub 仓库地址) git remote add origin xxx 5. 推送到远程主分支 git push -u origin main
场景二:本地已经是 git 仓库,后续日常迭代上传(最常用)
# 1. 查看修改了哪些文件(可选,建议养成习惯) git status 2. 把修改加入暂存区 git add . 3. 本地提交 git commit -m "完成xx功能" 4. 推送远程 git push
重要:远程已有代码,本地是空,先拉再推!
# 关联远程之后,先拉取远程代码合并 git pull origin main --allow-unrelated-histories 再 add、commit、push git add . git commit -m "初始化项目" git push origin main
分支开发流程
# 1. 拉取最新代码 git pull origin main 2. 创建并切换到开发分支 dev git checkout -b dev 写代码...... 3. 提交本地 git add . git commit -m "完成登录功能" 4. 推送远程 dev 分支 git push -u origin dev 之后提 merge/pull request 合并到 main
以上是分支开发流程的完整命令,按顺序执行即可完成功能开发并合并到主分支。
二、高频报错排查
1.****fatal: remote origin already exists.
远程仓库已经关联过,先删除旧远程:
git remote remove origin
再重新 git remote add origin 地址
2.push 报拒绝,提示本地版本落后远程:
先执行 git pull,解决冲突后再 push
3.查看当前关联的远程地址
git remote -v
4..gitignore 忽略文件(必做)
项目根新建 .gitignore 文件,写不需要上传的文件,示例:
# Python 项目
.venv/
__pycache__/
*.pyc
*.idea/
*.vscode/
虚拟环境、缓存、编辑器配置不要上传远程仓库。
三、其他常用命令
1.基础配置
# 设置用户名和邮箱(只在第一次配置时执行)
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
查看配置
git config --list
2.仓库初始化 & 远程关联
# 初始化本地git仓库
git init
查看远程仓库地址
git remote -v
关联远程仓库 origin是远程仓库别名
git remote add origin 仓库地址
删除旧远程关联
git remote remove origin
克隆远程项目到本地
git clone 仓库地址
克隆指定分支
git clone -b 分支名 仓库地址
3.查看日志
# 查看提交日志
git log
简洁单行日志
git log --oneline
4.撤销操作
# 撤销commit,保留代码,文件回到暂存区
git reset --soft HEAD~1
撤销commit,保留代码,取消add(默认mixed)
git reset HEAD~1
危险!撤销commit,删除所有改动
git reset --hard HEAD~1
取消add,文件回到未暂存
git reset 文件名
丢弃工作区修改(未add)
git checkout -- 文件名
已经push到远程,撤销提交(生成新提交)
git revert HEAD
5.分支操作
# 查看本地分支
git branch
查看远程分支
git branch -r
查看所有分支(本地+远程)
git branch -a
查看分支关联关系
git branch -vv
创建分支
git branch dev
切换分支
git checkout dev
创建并切换分支
git checkout -b dev
#新版本 switch(2.23以上)
git switch -c dev
合并dev分支到当前分支
git merge dev
删除本地分支(安全,需要合并完成)
git branch -d dev
强制删除本地分支
git branch -D dev
删除远程分支
git push origin --delete dev
6.存储代码
# 储藏当前改动
git stash
查看储藏列表
git stash list
恢复储藏(不删除储藏记录)
git stash apply
恢复并删除储藏
git stash pop
删除储藏
git stash drop
7.打包
# 工作区未add的改动输出为补丁
git diff > modify.diff
# add之后暂存区的改动
git diff --cached > staged.diff
# 两个commit之间差异 old..new
git diff HEAD~2..HEAD > version.diff
# 支持二进制文件(图片等)
git diff --binary HEAD~1 HEAD > bin.diff
git apply modify.diff
git apply --check modify.diff # 检查能否正常打补丁,不执行