当前位置: 首页 > news >正文

git 常见命令

Git 是分布式版本控制系统,以下是按日常开发流程分类的常用命令,涵盖从初始化、代码提交到协作开发的核心场景,附关键说明:

一、基础配置(首次安装必做)

# 配置全局用户名(关联提交记录)gitconfig --global user.name"Your Name"# 配置全局邮箱(与Git账号/仓库邮箱一致)gitconfig --global user.email"your.email@example.com"# 查看配置信息gitconfig --list# 重置配置(如需修改)gitconfig --global --unset user.name

二、仓库初始化/克隆

# 本地新建仓库(初始化.git目录)gitinit# 克隆远程仓库到本地(HTTPS方式)gitclone https://github.com/用户名/仓库名.git# 克隆远程仓库并指定本地目录名gitclone https://github.com/用户名/仓库名.git 自定义目录名# SSH方式克隆(需配置SSH密钥,免密码)gitclone git@github.com:用户名/仓库名.git

三、工作区/暂存区操作(日常开发高频)

# 查看文件状态(红:未追踪/修改;绿:已暂存)gitstatus# 简化状态输出gitstatus -s# 将指定文件添加到暂存区gitadd文件名/目录名# 添加所有修改/新增文件到暂存区gitadd.# 添加所有跟踪文件的修改(不含新增未追踪文件)gitadd-u# 撤销工作区修改(恢复到最近一次提交/暂存状态)gitcheckout -- 文件名# 撤销暂存区文件(回到工作区)gitreset HEAD 文件名# 删除文件并同步到暂存区gitrm文件名# 仅删除暂存区记录,保留本地文件gitrm--cached 文件名# 重命名文件并同步到暂存区gitmv旧文件名 新文件名

四、提交代码(版本记录)

# 提交暂存区文件到本地仓库,必须写提交信息gitcommit -m"feat: 新增用户登录功能"# 提交时自动将已跟踪的修改文件加入暂存区(跳过git add)gitcommit -am"fix: 修复登录密码加密问题"# 修改最近一次提交(仅未推送到远程时用)gitcommit --amend# 合并多次提交(交互式,需编辑提交记录)gitrebase -i HEAD~3# 合并最近3次提交

五、分支操作(核心协作能力)

# 查看所有分支(*表示当前分支)gitbranch# 查看远程分支gitbranch -r# 查看所有分支(含远程)gitbranch -a# 创建新分支gitbranch 分支名# 创建并切换到新分支gitcheckout -b 分支名# (Git 2.23+推荐)创建并切换分支gitswitch -c 分支名# 切换到已有分支gitcheckout 分支名# (Git 2.23+推荐)切换分支gitswitch 分支名# 删除本地分支(需先切换到其他分支)gitbranch -d 分支名# 强制删除未合并的本地分支gitbranch -D 分支名# 删除远程分支gitpush origin --delete 分支名# 或简写gitpush origin :分支名# 重命名本地分支gitbranch -m 旧分支名 新分支名

六、远程仓库操作(协作同步)

# 查看已关联的远程仓库gitremote -v# 添加远程仓库(命名为origin,默认别名)gitremoteaddorigin https://github.com/用户名/仓库名.git# 修改远程仓库地址gitremote set-url origin 新地址# 拉取远程仓库最新代码(合并到当前分支)gitpull# 拉取指定远程分支到本地指定分支gitpull origin 远程分支名:本地分支名# 推送本地分支到远程仓库gitpush origin 本地分支名# 首次推送时关联远程分支(后续可直接git push)gitpush -u origin 本地分支名# 拉取远程所有分支信息(不合并)gitfetch

七、合并/变基(分支整合)

# 切换到主分支,合并功能分支gitcheckout maingitmerge 功能分支名# 变基(将当前分支提交“移植”到目标分支顶部,更整洁)gitcheckout 功能分支名gitrebase main# 解决合并/变基冲突后,继续操作gitadd冲突文件gitrebase --continue# 变基冲突# 或gitmerge --continue# 合并冲突# 放弃合并/变基gitmerge --abortgitrebase --abort

八、版本回退(纠错必备)

# 查看提交历史(含哈希值、作者、信息)gitlog# 简化日志输出gitlog --oneline# 查看所有操作记录(包括回退、删除分支)gitreflog# 回退到指定版本(保留工作区修改,仅撤销提交)gitreset --soft 提交哈希值# 回退到指定版本(撤销提交+暂存区,保留工作区)gitreset --mixed 提交哈希值# 默认模式# 强制回退到指定版本(清空工作区/暂存区,谨慎使用)gitreset --hard 提交哈希值# 恢复已删除的提交(结合git reflog找哈希值)gitreset --hard 提交哈希值# 撤销某次提交(生成反向提交,保留历史,推荐)gitrevert 提交哈希值

九、暂存工作区(临时切换分支)

# 暂存当前工作区未提交的修改gitstash# 暂存并添加备注gitstash save"修复登录bug的临时修改"# 查看所有暂存记录gitstash list# 恢复最近一次暂存(保留暂存记录)gitstash apply# 恢复指定暂存(git stash list查看序号)gitstash apply stash@{0}# 恢复并删除暂存记录gitstash pop# 删除指定暂存gitstash drop stash@{0}# 删除所有暂存gitstashclear

十、标签(版本发布)

# 创建轻量标签(仅标记,无备注)gittag v1.0.0# 创建附注标签(含详细信息,推荐)gittag -a v1.0.0 -m"发布v1.0.0版本,支持用户登录"# 查看所有标签gittag# 推送指定标签到远程gitpush origin v1.0.0# 推送所有标签到远程gitpush origin --tags# 删除本地标签gittag -d v1.0.0# 删除远程标签gitpush origin --delete v1.0.0

核心原则&注意事项

  1. 未推送到远程的修改:可大胆用git reset/git rebase调整;
  2. 已推送到远程的修改:优先用git revert而非git reset --hard,避免破坏协作历史;
  3. 冲突解决:冲突文件中<<<<<<< HEAD是当前分支内容,=======分隔,>>>>>>> 分支名是合并分支内容,手动编辑后保存再提交;
  4. SSH免密:克隆/推送用SSH地址需先配置SSH密钥(本地生成公钥,添加到Git平台账号)。

以上是90%日常开发场景的核心命令,可根据实际需求组合使用。

http://www.cnnetsun.cn/news/49258.html

相关文章:

  • Windows更新后RDPWrap失效修复指南:快速恢复多用户远程桌面功能
  • GPU和TPU差异之联网
  • 解决 Oracle 监听外网 IP 及腾讯云防火墙配置
  • ORACLE解析游标生成JSON
  • AMD GPU并行通信技术:突破性性能优化实战指南
  • Everywhere AI助手:跨平台智能对话系统深度解析
  • 考古学开放数据中的Paradata研究——CAPTURE项目与文献综述解读
  • 论文解读|将1930年前所有阿拉伯期刊添加到Wikidata——学术众包项目Jarāʾid向数字公共领域的迁移
  • 5分钟掌握UpSetR:超越维恩图的集合交集可视化神器
  • 机构洗盘拼合指标绝无未来 源码分析
  • Android项目架构完整指南:模块化开发与Kotlin最佳实践
  • Horovod Process Sets:让千亿参数模型训练触手可及
  • 5步掌握Loco+Tauri:构建高性能跨平台桌面应用的终极指南
  • 如何在Zephyr RTOS中制定最佳编译策略?
  • 专业实验室改造,必须避开的5大坑
  • 千万注意!实验室装修这5个关键点不容忽视
  • 关于指纹浏览器
  • ModelScope 模型一键上线?FunModel 让你 5 分钟从零到生产
  • 云服务器与传统服务器
  • Step-Audio 2:颠覆性多模态音频AI如何重新定义人机交互?
  • 3步掌握OpenUSD在Blender中的高效应用方法
  • HeyGem.ai视频生成超时终极解决方案:从卡顿到流畅的完整优化指南
  • AI智能体测试终极指南:构建可靠质量保障体系
  • 通信基站抛物面天线检测--基于RPN与FPN的改进算法实现
  • CosyVoice ONNX模型部署终极指南:5大实战技巧快速掌握
  • 字节跳动开源Bamboo-mixer:AI驱动电解液研发革命,周期缩短60%
  • 后端学习笔记
  • Gitea权限管理:构建安全高效的代码访问控制体系
  • AI视频生成终极指南:从零开始快速上手WAN2.2-14B-Rapid-AllInOne
  • Ascend C 编译器内幕与自动调优实战:从手写 Kernel 到 AI 驱动的性能优化