Git命令

一、完整上传代码流程

场景一:本地全新项目(第一次上传)

复制代码
# 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   # 检查能否正常打补丁,不执行
相关推荐
Winlifes13 小时前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
郑州光合科技余经理1 天前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我123451 天前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
Lcr3s2 天前
Git基础之(0):如何在Ubuntu(Linux)上安装git
git
玄芯散人2 天前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
寺中人3 天前
Git 版本控制完全入门指南:从安装到实战,提交 + 分支 + 协作 + 冲突解决全拆解
git·开发工具·版本控制·团队协作·代码管理
荔枝梅梅3 天前
新手程序员 SSH 第一课:从 Git 仓库连接失败理解 SSH 协议与密钥配置
git
玄芯散人3 天前
【筑基·057】Git代码时光机:版本控制入门到分支管理
git·版本控制·嵌入式开发
szephyr3 天前
Git 分支管理实战:feature/release/hotfix 怎么用才不乱
git·分支管理·团队协作·工作流·hotfix
一木 之林3 天前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器