GitGitHub完整学习笔记
GitGitHub完整学习笔记摘要本文整理Git分布式版本控制核心概念、全套高频命令包含新项目从零关联GitHub完整实操步骤、分支协同、回退撤销、gitignore忽略配置、团队提交规范适合新手快速上手。1.基础认知Git是什么Git是分布式版本控制系统记录文件每一次修改历史支持版本回退、分支开发、多人协作。分布式含义每台开发者电脑拥有完整代码仓库不依赖服务器也能工作。GitHub是什么GitHub是基于Git的云端代码托管平台Git是本地工具做版本控制GitHub是线上平台存代码、团队协作。核心四大区域概念仓库(Repository).git隐藏文件夹全部代码历史版本工作区你电脑看得见、正在编辑的项目文件暂存区git add之后改动进入暂存区可以选择性提交部分修改Commit提交永久保存快照附带作者、时间每个提交拥有唯一标识分支Branch分支就是指向commit的指针默认主线main。开发新功能新建分支不破坏主线稳定完成再合并。2.首次全局配置仅执行1次本机永久生效gitconfig--globaluser.nameGitHub用户名gitconfig--globaluser.emailgithub注册邮箱#查看配置gitconfig--global--list3.新项目本地代码上传GitHub【完整流程】初始化本地git仓库项目根目录终端gitinit生成隐藏.git文件夹本地仓库创建完毕。编写.gitignore忽略文件根目录新建.gitignore写上不需要git追踪上传的文件/文件夹文件夹末尾加/Python项目模板.venv/ __pycache__/ *.pyc *.log .idea/ .vscode/ .DS_Store .env node_modules/ dist/提交代码至本地仓库gitadd.#全部改动加入暂存区gitcommit-mv1项目原始代码#暂存区提交生成本地版本后续代码修改重复执行这两条网页端GitHub操作GitHub创建空白仓库不要勾选readme复制仓库https链接。本地关联远程仓库并推送代码gitremoteaddorigin 复制的github仓库链接gitbranch-Mmaingitpush-uorigin main第一次加‑u绑定上下游之后更新简写gitadd.gitcommit-m更新内容说明gitpush4.高频命令汇总创建仓库gitinit#本地初始化仓库gitclone 远程地址#下载github已有项目到本地日常提交流程gitstatus#查看文件改动状态gitadd文件名#单个文件加入暂存gitadd.#全部改动加入暂存gitcommit-m提交说明#生成版本快照查看历史gitlog#完整提交记录gitlog--oneline#简洁单行记录推荐gitdiff#工作区 vs 暂存区差异gitdiff--staged#暂存区 vs上一次提交差异分支操作gitbranch#列出本地所有分支gitbranch 分支名#新建分支不切换gitcheckout 分支名#切换已有分支gitcheckout-b分支名#新建立刻切换分支最常用gitmerge 分支名#把目标分支合并到当前所在分支gitbranch-d分支名#删除已经合并完毕的分支示例新建test测试分支gitcheckout-btestgitpush-uorigintest#首次推送新分支到githubgitcheckout main#切回主线main远程操作gitremote-v#查看绑定的远程仓库地址gitpush#推送代码上传github已绑定‑u后gitpush-uorigin main#首次推送main分支gitpull#拉取远程最新代码自动合并gitfetch#获取远程数据不自动合并更安全⚠️撤销回退救命命令gitcheckout -- 文件名#丢弃工作区未add的修改gitreset 文件名#把文件移出暂存区本地代码保留gitreset--hardcommit值#危险全部改动清空回退指定版本gitrevert commit值#安全新建提交抵消旧改动不改历史适合已经推送到远程的代码5.常见踩坑误把.idea上传远程仓库.idea是IDE配置不应该提交仓库#只在git里移除电脑本地文件保留gitrm-r--cached.idea在.gitignore添加一行.idea/gitadd.gitcommit-mremove .ideagitpush结果GitHub页面.idea消失本机配置不受影响以后不会再上传。6.多人协作标准流程clone远程仓库下载代码到本地创建功能分支git checkout -b feature/xxx分支内开发执行add、commitpush推送分支到GitHubGitHub网页发起Pull Request(PR)代码评审通过合并入main主分支7.commit提交信息规范团队约定前缀标明改动类型冒号写清楚改动内容feat:新增功能fix:修复bugdocs:更新文档、readmerefactor:代码重构功能不变chore:修改配置、更新依赖feat: 新增登录接口 fix: 修复登录报错问题 docs: 更新项目安装文档