git小白的学习笔记---从安装到基础命令
作为一枚初学者记录一下学习过程博主的学习途径廖雪峰的官方网站git文档博主mukes的文章Git详细安装教程文章目录写在前面个人理解git创建的库一般是指本地创建的项目版本库---并使用git命令来管理这个库github上的项目是一个在开源的代码托管机构托管的远程库---可以把本地库推送到github上托管但免费的也是公开的 别人是可以看到的---好处是随时随地都可以使用自己的密钥修改项目内容前言一、git是什么Git工作流程二、安装2.1版本2.2个人认为需要额外留意的几个地方2.2.1 安装目录可以自定义2.2.2 Git默认编辑器vscode用户建议用vscode2.2.3 仓库初始化主干名这个默认也行但我用了第二个mian2.2.4 HTTPS后端传输选OpenSSL2.2.5 配置终端选MinTTY三、简单指令3.1-1 创建版本库本地仓库3.1-2 克隆仓库如果是远程仓库项目3.1-2.1 创建新分支3.2 工作目录插入一个概念3.3 暂存文件3.4 提交更改注意3.5 拉取最新更改如果是远程仓库的项目合并可能你在其他电脑上修改或者其他参与者修改提交的记录3.6 推送更改3.6.1 创建 Pull RequestPR3.6.2 合并更改3.7 分支3.7.1创建分支3.7.2 查看分支3.7.3 合并分支3.7.4 解决合并冲突3.7.1 删除分支四、标签五、替换本地改动总结写在前面个人理解git创建的库一般是指本地创建的项目版本库—并使用git命令来管理这个库github上的项目是一个在开源的代码托管机构托管的远程库—可以把本地库推送到github上托管但免费的也是公开的 别人是可以看到的—好处是随时随地都可以使用自己的密钥修改项目内容前言记录一些基本的初学者内容在win1125H2上安装git2.53.0.2git官网建议直接从浏览器检索:官网貌似长这样免责保命供和我一样的初学者参考出现问题的话以我半吊子的水平可能也无法解决一、git是什么Git 是一个开源的分布式版本控制系统用于敏捷高效地处理任何或小或大的项目。Git 不仅仅是个版本控制系统它也是个内容管理系统(CMS)工作管理系统等。Git工作流程二、安装2.1版本我安装的版本是Git 2.53.0.2 因为git安装的交互窗口的选项也很多所以建议和我一样的新手参考一些版本相近的安装博客教程。我参考的是Git 2.48.1《博主mukes的安装教程》这位博主的安装教程介绍的非常详细2.2个人认为需要额外留意的几个地方2.2.1 安装目录可以自定义2.2.2 Git默认编辑器vscode用户建议用vscode这里借用博主mukes文章中的图默认是vim2.2.3 仓库初始化主干名这个默认也行但我用了第二个mian2.2.4 HTTPS后端传输选OpenSSL2.2.5 配置终端选MinTTY具体可以认真参考博主mukes的安装教程三、简单指令这里新手非常有必要再回顾一下git的工作流3.1-1 创建版本库本地仓库可以简单理解成一个目录这个目录里面的所有文件都可以被Git管理起来每个文件的修改、删除Git都能跟踪以便任何时刻都可以追踪历史或者在将来某个时刻可以“还原”。Windows系统请确保目录名包括父目录不包含中文新建一个文件夹 or 准备提交到git的已有项目文件夹通过git init命令把这个目录变成Git可以管理的仓库Git就把仓库建好了当前目录下多了一个.git的目录这个目录是Git来跟踪管理版本库的没事千万不要手动修改这个目录里面的文件不然改乱了就把Git仓库给破坏了。3.1-2 克隆仓库如果是远程仓库项目如果你要参与一个已有的项目首先需要将远程仓库克隆到本地gitclone https://github.com/username/repo.gitcdrepo3.1-2.1 创建新分支对从远程仓库拉取过来的项目为了避免直接在 main 或 master 分支上进行开发通常会创建一个新的分支gitcheckout-bnew-feature3.2 工作目录插入一个概念在工作目录中进行代码编辑、添加新文件或删除不需要的文件。3.3 暂存文件将修改过的文件添加到暂存区以便进行下一步的提交操作gitaddfilename# 或者添加所有修改的文件gitadd.修改过的待提交的文件一定要放到仓库目录下子目录也行因为这是一个Git仓库放到其他地方Git再厉害也找不到这个文件。3.4 提交更改用命令git commit告诉Git将暂存区的更改提交到本地仓库并添加提交信息gitcommit-m引号引起来的这句话是一个提交说明。# -m 后的引号内 可以输入任意内容当然最好是有意义的这样你就能从历史记录里方便地找到改动记录注意已提交的文件—本地仓库持久化git commit 后意味着你对项目的更改已经被记录在了本地的 Git 仓库中但也不是完全设置好只是包括了你通过 git add 暂存的所有文件的新版本、修改或删除状态。此时这些更改已经形成了一个新的提交commit。未暂存的修改或未跟踪的文件如果你在工作目录中还有未暂存的更改这些更改不会被包含在这个 git commit 中。新添加但未使用 git add 加入暂存区的文件也不会被此次提交影响。只有明确通过 git add 指定的文件和更改才会被当前的 git commit 所记录。确保所有需要保存的更改都已经通过 git add 添加到了暂存区。一旦确认无误并执行了 git commit那么这些更改就在本地仓库中得到了安全存储并且可以作为项目历史的一部分进行回溯、比较等操作。3.5 拉取最新更改如果是远程仓库的项目合并可能你在其他电脑上修改或者其他参与者修改提交的记录在推送本地更改之前最好从远程仓库拉取最新的更改以避免冲突gitpull origin main# 或者如果在新的分支上工作gitpull origin new-feature3.6 推送更改将本地的提交推送到远程仓库gitpush origin new-feature3.6.1 创建 Pull RequestPR在 GitHub 或其他托管平台上创建 Pull Request邀请团队成员进行代码审查。PR 合并后你的更改就会合并到主分支。3.6.2 合并更改在 PR 审核通过并合并后可以将远程仓库的主分支合并到本地分支gitcheckout maingitpull origin maingitmerge new-feature3.7 分支Git 分支管理是 Git 强大功能之一能够让多个开发人员并行工作开发新功能、修复 bug 或进行实验而不会影响主代码库。几乎每一种版本控制系统都以某种形式支持分支一个分支代表一条独立的开发线。使用分支意味着你可以从开发主线上分离开来然后在不影响主线的同时继续工作3.7.1创建分支创建新分支并切换到该分支gitcheckout-bbranchname#例如git checkout -b feature-xyz切换分支命令:gitcheckout(branchname)#例如git checkout main当你切换分支的时候Git 会用该分支的最后提交的快照替换你的工作目录的内容 所以多个分支不需要多个目录。3.7.2 查看分支查看所有分支gitbranch查看远程分支gitbranch-r查看所有本地和远程分支gitbranch-a3.7.3 合并分支将其他分支合并到当前分支gitmergebranchname#例如切换到 main 分支并合并 feature-xyz 分支# git checkout main# git merge feature-xyz3.7.4 解决合并冲突当合并过程中出现冲突时Git 会标记冲突文件你需要手动解决冲突。打开冲突文件按照标记解决冲突。标记冲突解决完成gitaddconflict-file提交合并结果gitcommit3.7.1 删除分支如果不再需要新功能分支可以将其删除。删除本地分支gitbranch-dnew-feature强制删除未合并的分支gitbranch-Dbranchname或者从远程仓库删除分支gitpush origin--deletebranchname四、标签如果你达到一个重要的阶段并希望永远记住提交的快照你可以使用 git tag 给它打上标签。Git 标签Tag用于给仓库中的特定提交点加上标记通常用于发布版本如 v1.0, v2.0。比如说我们想为我们的 runoob 项目发布一个 “1.0” 版本我们可以用 git tag -a v1.0 命令给最新一次提交打上HEAD “v1.0” 的标签。-a 选项意为创建一个带注解的标签不用 -a 选项也可以执行的但它不会记录这标签是啥时候打的谁打的也不会让你添加个标签的注解我们推荐一直创建带注解的标签。五、替换本地改动总结当Git无法自动合并分支时就必须首先解决冲突。解决冲突后再提交合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容再提交。用git log --graph命令可以看到分支合并图。这些基本概念和命令已经够我使用了更加高深的可能就需要更久的学习时间去钻研了。