Git+GitHub大全解(萌新向)
1.什么是Git?2.什么是GitHub3.基本概念1.什么是Git?Git是一个分布式版本控制系统用于跟踪文件变更并协调多人在同一项目上的协作开发。核心功能版本控制记录文件的历史修改支持回溯到任意版本。分支管理允许创建独立分支进行开发合并时解决冲突。分布式架构每个开发者拥有完整的代码仓库副本不依赖中央服务器。2.什么是GitHubGitHub 是一个基于云端的代码托管平台主要用于版本控制和协作开发。它基于 Git 分布式版本控制系统允许开发者存储、管理、追踪代码变更并支持多人协作开发项目。核心功能代码托管开发者可以将代码仓库Repository存储在 GitHub 上支持公开开源或私有需付费项目。每个仓库包含完整的代码历史记录和分支管理。版本控制Git通过 Git 技术GitHub 提供分支Branch、提交Commit、合并Merge等功能便于团队协作和代码版本管理。协作工具Pull Request开发者可以提交代码修改请求团队成员可审核、讨论后再合并到主分支。Issue用于跟踪任务、缺陷或功能请求支持标签、分配和评论。Wiki项目文档托管方便知识共享。自动化与集成GitHub Actions支持自动化工作流如测试、部署。CI/CD与其他工具如 Jenkins、Travis CI集成实现持续集成和部署。3.基本概念任务ID有长有短短的方便记忆541b545e9e21d1a6f80399d7b944902a124270de或541b。git init把文件夹git init就是用git把这个文件夹管理起来变成一个git仓库。git init后会在对应文件夹内生成一个.git文件删除.git文件也就取消了git对该文件夹的管理。.gitignore:.gitignore 是一个纯文本文件用于指定 Git 版本控制系统应忽略的文件或目录。它的作用是避免将不必要的文件如临时文件、编译产物、本地配置文件等提交到代码仓库中从而保持仓库的整洁。commit:将更改保存到本地仓库。当然如果提交的版本不是很满意也可以“反悔”Branch:分支,版本控制中用于隔离开发工作的核心概念。通过分支可以在不影响主代码库的情况下进行功能开发、错误修复或实验性修改。值得注意的是github的分支是通过指针实现的也就是特性分支上新提交的内容只能在特征分支上被看到主干分支不会受影响。一旦特性分支开发结束可以通过merge commit将分支和主干合并。当然分支也提供了回退到历史某个版本的一种方式直接在历史某次commit节点上创建分支即可而且分支也可以再开分支不同分支的head不同但都指向该分支最新一次的提交版本。git worktree本质是用git创建一个新的分支然后把新分支的代码放到一个新的文件夹里这个新文件夹就是一个worktree新worktree上的改动不会影响到主文件夹两者可以并行工作修改部分可以后期合并回主干。merge conflict:两个分支修改了同一个文件的同一行代码git不知道该保留哪一个这个时候就会产生merge conflict此时需要人工决定保留那一部分代码很麻烦git areas(git分区):git共有四个分区其中暂存区用git add指令添加内容进暂存区)大部分被隐去合并成了一个commit按钮。分区名称英文名作用描述文件状态变化路径工作目录Working Directory用户直接编辑的目录所有文件修改最初发生在这里未跟踪 → 已暂存 → 已提交暂存区Staging Area临时保存即将提交的改动是工作目录与版本库之间的缓冲层修改完成 →git add→ 待提交本地仓库Local Repository存储项目完整历史记录包含所有提交对象commit暂存区 →git commit→ 永久存储远程仓库Remote Repository托管在服务器上的共享仓库用于团队协作和备份本地提交 →git push→ 云端同步cherry peek(拣选提交):分支中有很多次提交只挑选某几次的提交合并进主干就可以用cherry peek比如“把任务ID为XXX和XXX的两次提交cherry peek进主干”stash(临时存储)有时在分支上编写代码时需要临时切换回主分支但是不保存直接切换会丢失当前更改也不适合直接保存代码没写完此时就需要stash当前代码切回主分支后再切回来时选择pop stash就可以拿出之前没写完的代码继续写了。rebase(变基)舍弃原来分支的根基c1把直接根扎在其他分支(c5)上注意图中箭头方向表示地基方向。