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   # 检查能否正常打补丁,不执行
相关推荐
_道隐_2 小时前
git 如何把一个已经commit到本地分支的,被错误staged的文件,单独拿出来revert呢?
git
lingran__3 小时前
Git 完全指南(一):本地仓库基础操作
linux·git·开发工具·devops·版本控制
星空3 小时前
git使用
git
工藤孤独1 天前
Git Worktree 从零到多智能体实战
git
微尘寒风2 天前
【Git】的安装和使用
java·git
胖大和尚2 天前
Git初始化本地文件夹,并推送到远端
git
啵啵啵12342 天前
Git 底层原理:分支为什么只是一个 41 字节的文件
git
demon75520032 天前
Git Worktree详解介绍
git·worktree
胖大和尚2 天前
当前仓库推送到同一台机器上的另一个文件夹
git