Git版本控制

   日期:2024-12-26    作者:ajp5a 移动:http://mip.riyuangf.com/mobile/quote/45126.html

概念:一个免费开源,分布式的代码版本控制系统,帮助开发与团队维护代码

Git版本控制

作用记录代码内容切换代码版本,多人开发时高效合并代码内容

个人本机使用:Git基础命令和概念

多人共享使用:团队开发同一个项目的代码版本管理

总结

1、为何学习Git

        管理代码版本、记录、切换、合并代码

2、Git学习

        现在在本机自己使用

        在学习多人共享使用

3、如何安装使用

        程序双击安装

        在 VSCode 中使用 bash 终端以及 git 命令

Git仓库:记录文件状态内容的地方,存储着修改的历史记录

创建

1、把本地文件夹转换成Git仓库:命令 git init

2、从其他服务器上克隆Git仓库

要打开git专用的终端 普通终端右边加号

  总结

1、什么是Git仓库

        记录文件状态内容和历史记录的地方(.git文件夹

2、如何创建Git仓库

        把本地文件夹转换成Git仓库:命令 git init
        从其他服务器上克隆 Git 仓库

Git使用时

工作区:实际开发时操作的文件夹

暂存区:保存之前的准备区域(暂存改动过的文件

版本库:提交并保存暂存区中的内容,产生一个版本快照

命令作用git add 文件名
(如果这个文件在某个文件下 要写相对路径)暂存指定文件git add.暂存所有改动的文件git commit -m “注释说明”提交并保存,产生版本快照

需求:把登录页面新增后,暂存并提交

总结

1、Git使用时有哪些区域

        工作区、暂存区、版本库

2、工作区的内容,最终要如何保存在版本库中

        git add 添加到暂存区

        等待时机后 git commit 提交保存到版本库,产生一次版本快照记录

Git文件 2 种状态

未跟踪:新文件,从未被 Git 管理过

已跟踪:Git 已经知道和管理的文件

使用:修改文件,暂存,提交保存记录,如此反复

需求:新增 css文件,并使用 git status -s 查看文件状态,并最终提交 (在终端里看状态

文件状态概念场景未跟踪(U)从未被Gitt管理过新文件新添加(A)第一次被Git暂存之前版本记录无此文件未修改'')三个区域统一提交保存后已修改(M)工作区内容变化修改了内容产生

需求:新增css文件,并使用 git status -s 查看文件状态,并最终提交

第一列是暂存区状态

第二列是工作区状态

总结

1、Git文件状态分为哪2种

        未跟踪和已跟踪(新添加、未修改、已修改

2、如何查看暂存区和工作区文件状态
        git status -s

暂存区:临时存储,可以临时恢复代码内容,与版本库解耦

暂存区 —> 覆盖  —> 工作区,命令:git restore 目标文件

(注意:完全确认覆盖时使用(在VSCode没关闭前的 ctrl + Z是能撤销的 但是关闭后无法撤销

从暂存区移除文件,命令:git rm --cached 目标文件名 (移除后 工作区的文件名为未跟踪状态

需求:新增JS代码并暂存提交产生新的版本快照

步骤

1、新增js文件和内容

2、临时存的在暂存区

3、提交保存到版本库

概念:把版本库某个版本对应的内容快照,恢复到工作区/暂存区

查看提交历史git log --oneline

reset回退版本是从右向左一步一步进行辐射的

回退命令

git reset --soft 版本号(其他文件未跟踪

git reset --hard 版本号 (git reset 的恢复会先把对应这个版本的内容恢复到暂存区,然后接着会对比暂存区和工作区的内容然后进行恢复 如果没有恢复 可以再写个暂存 然后在hard退回

git reset --mixed 版本号 (与 git reset 等价

注意1:只有记录在版本库的提交记录才能恢复

注意2:回退后,继续修改 —> 暂存 —>提交操作即可(产生新的提交记录过程

总结

1、什么是Git回退版本

        把版本库某个版本对应的内容快照,恢复到工作区/暂存区

2、强制覆盖暂存区和工作区的命令?

        git reset --hard 版本号

3、如何查看提交历史
        git log --oneline

        git reflog --oneline

需求:删除 editor.js文件,并生产一次版本记录

步骤

1、手动删除工作区文件

2、暂存变更 / 手动删除暂存区文件造成变更

3、提交保存

总结:工作区只要改变,都可以暂存提交产生新记录

概念:.gitignore 文件可以让 git 彻底忽略跟踪制定文件

目的:让 git 仓库更小更快,避免重复无意义的文件管理

忽略命令

例如

1、系统或软件自动生成的文件

2、编译产生的结果文件

3、运行时生成的日志文件,缓存文件,临时文件等

4、涉密文件、密码、秘钥等文件

创建

1、项目根目录新建 .gitignore 文件

2、填入相应配置来忽略指定文件

注意:如果文件已经被暂存区跟踪过,可以从暂存区移除即可(git rm --catch

匹配成功后 工作区的文件名字会变灰

概念:本质上是指向提交节点的可变指针,默认名字是master,master默认指向最后一次对对提交记录

注意HEAD指针影响工作区/暂存区的代码状态(HEAD指针是实际上起作用的

场景:开发新需求/修复Bug,保证主线代码随时可用,多人协同开发提高效率

例如

在现有代码上创建新分支完成内容列表业务

突然需要紧急修复Bug - 单独创建分支解决Bug

需求:创建内容列表 content分支,并产生3次提交记录

步骤

1、创建分支命令git branch 分支名

2、切换分支命令git checkout 分支名

3、工作区准备代码并暂存提交,重复3次

总结

1、什么是Git分支

        指针,指向提交记录

2、HEAD指针的作用

        影响暂存区和工作区的代码

3、如何创建和切换指针

        git branch 分支名

        git checkout 分支名

需求:新建 login-bug 分支,做 2 次提交记录(对手机号长度,验证码长度做判断

步骤

1.切回到主分支:git checkout master

2.创建新分支:git branch login-bug

3.切换新分支:git checkout login-bug

4.修改代码,暂存,提交产生版本记录

需求:把log-bug 合并回到 master分支并删除log-bug分支

步骤

1、切回到要合入的分支上:git checkout master

2、合并其他分支过来: git merge log-bug

3、删除合并后的分支指针:git branch -d log-bug

注意:要先合并再删除不需要的分支

合并提交:发生于原分支产生了新的提交记录后,在合并回去时发生,自动使用多个快照记录合并后产生一次新的提交

步骤

1、切回到要合入的分支上:git checkout master

2、合并其他分支过来:git merge content

3、删除合并后的分支:git branch -d content

最后合并回到主分支上时,提交记录流程图

注意提交记录的顺序按照产生的先后顺序排列,而非合并的先后顺序

需求1:基于 master 新建 publish 分支,完成发布文章业务,然后修改内容页面的 html 文件的title标签,并提交一次

需求2:切换到 master , 也在修改内容页面的 html 文件的 title 标签,并提交一次

冲突:把 publish 分支合并到 master 回来,产生合并冲突

概念不同分支,对同一个文件同一部分修改,Git无法感觉的合并,产生合并冲突

解决

1、打开VSCodde找到冲突文件并手动解决

2、解决后需要提交一次记录

避免(多交流

1、按页面划分不同分支开发

2、公共代码在统一文件夹维护

3、Node等版本软件统一,npm包统一下载

命令作用注意git -v查看git版本git init初始化git仓库git add 文件标识暂存某个文件文件标识以终端为起始的相对路径git add .暂存所有文件git commit -m “说明注释”提交产生版本记录每次提交,把暂存区内容快照一份git status查看文件状态-详细信息git status -s查看文件状态-简略信息第一列是暂存区状态,第二列是工作区状态git ls-files查看暂存区文件列表git restore 文件标识从暂存区恢复到工作区如果文件标识为.则恢复所以文件git rm --cached 文件标识从暂存区移除文件不让git跟踪文件变化git log查看提交记录-详细信息git log --oneline查看提交记录-粗略信息版本号 分支指针 提交时说明注释git reflog --oneline查看完整历史-简略消息包括提交、切换、回退等所有记录git reset 版本号切换版本代码到暂存区和工作区

--soft 模式保留暂存区和工作区原本内容

--hard 模式不保留暂存区和工作区原本内容

--mixed模式不保留暂存区,工作区保留(默认)先覆盖到暂存区,再用暂存区对比覆盖工作区

git branch 分支名创建分支git branch查看本地分支git branch -d 分支名删除分支请确保记录已经合并到别的分支下,在删除分支git checkout 分支名切换分支改变HEAD指针指向git chechout -b 分支名创建并立刻切换分支git merge 分支名把分支提交到历史记录并合并到当前所在分支

概念:托管在因特网或其他网络中的你的项目的版本库

作用:保存版本库的历史记录,多人协作

创建:公司自己服务器/第三方托管平台Gitee、GitLab、GitHub……

需求:创建远程版本库,并把本地Git仓库推送上去保存

步骤

1、注册第三方托管平台网站账号

2、新建仓库得到远程仓库Git地址(这个是在git上操作的

3、本地Git仓库添加远程仓库原点地址(可以理解为建立联系

        命令git remote add 远程仓库别名(叫撒都行) 远程仓库地址 

        例如:git remote add origin https://gitee.com/lidongxu/work.git

4、本地Git仓库推送版本记录到远程仓库

        命令git push -u 远程仓库别名 本地和远程分支名

        例如:git push -u oringin master

        完整写法:git push --set-upstream origin master:master

总结

1、远程版本库的作用

        保存提交历史记录,多人共享

2、远程版本库使用步骤

        创建远程版本库(自己服务器/第三方托管平台

        本地版本库设置远程地址

        推送本地版本库到远程

3、推送的命令

        git push -u origin master

克隆:拷贝一个Git仓库到本地,进行使用

命令:git clone 远程仓库地址 例如:git clone https://gitee.com/lidongxu/work.git

效果;在运行命令所在文件夹,生成 work 项目文件夹(包含版本库,并映射到暂存区和工作区

注意1:Git本地仓库已经建立好和远程仓库的链接

注意2:仓库公开随意克隆,推送需要身为仓库团队成员

克隆时,右键打开git Bah终端 在里面输入git命令

git clone 远程仓库网址

就会在你当前终端生成仓库名字文件夹(克隆成功

进入中国文件夹中:cd  文件夹名字/

隐藏的.git文件夹才是git仓库的一个准确位置

接着可以输入git log --oneline 查看所有提交历史记录

需求:小传新代码共享给小智

步骤

1、小传开发代码 —> 工作区  —> 暂存区  —> 提交  —> 拉取(可选)  —> 推送

2、小智  —> 拉取(后续也可以开发代码 —> …… —>  推送

3、想要看到别人同步上去的最新内容 git pull origin master 等价于 (git pull 远程仓库别名地址 拉取的是哪个分支下的最新提交记录

git fetch origin master:master(获取远程分支记录到本地,未合并

git merge origin/master (把远程分支记录合并到所在分支下

使用:源代码管理,进行暂存,撤销,对比差异,提交等操作

注意:VSCode打开的项目文件夹下需要有.git仓库

需求:把Webpack压缩好的dist分发文件夹网页,部署到码云上,开启Page服务在互联网中浏览

步骤

1、初始化本地Git仓库(这次是非空文件夹-配套素材dist文件夹

2、初始化远程Git仓库(这一次也是非空的

3、本地配置远程仓库连接

4、本地拉取合并一下(确认本地要包含远程内容时使用

5、本地推送到远程Git仓库

6、开启page网页服务得到地址浏览

详细步骤

①、先确认项目能够正常使用,打包代码后,对git终端进行一个初始化管理 git init 生成一个 .git文件夹。表明当前项目被git管理。

②、暂存 git add .

③、提交 git commit -m “注释说明” (本地准备完成

④、打开gitee网站,建立一个新的仓库(私有的,非空的

如果想清空(把现有的内容和所有提交记录都清空了

要拿到git地址是在这个地方 以.git结尾的

⑤、让远程git仓库与本地的git仓库建立联系

给本地配置 git remote add (前面是固定的)ori(仓库别名,自己随便起)https://gitee.com/zelina173/page-hm-data.git(这个是别名对应的远程git仓库地址

⑥、输入git push -u ori master(是远程仓库的分支名) master(自己仓库的分支名(一般这俩俩名重复写一个即可

 git push -u ori master

error报错 在hint提示里面说 在推上去(push)之前先拉取(pull)一次远程仓库

⑦、按照提示进行操作

git pull ori master

错误:拒接合并不相关的历史记录

本地里面是四个文件夹里面的文件 远程仓库里面是md文件,没有任何关系

所以要强制合并

⑧、git pull --rebase ori 远程仓库的别名 远程及本地分支的名字

        git pull --rebase ori master

此时工作区出现远程的文件

⑨、把本地仓库内容推到远程仓库里 git push ori master

⑩、到Gitee网站里刷新就能看到提交记录和本地仓库内容

命令作用注意git remote add 远程仓库别名 远程仓库地址添加远程仓库地址别名唯一,地址是.git结尾的网址git remove -v查看远程仓库地址git remote remove 远程仓库别名删除远程仓库地址git pull 远程仓库 别名 分支名拉取完整写法:git pull 远程仓库别名 远程分支名:本地分支名 等价于:git fetch 和 git mergegit push 远程仓库别名 分支名推送完整写法:git push 远程仓库别名 本地分支名:远程分支名 -u:建立通道后以后可以简写 git pushgit pull --rebase 远程仓库别名 分支名拉取合并合并没有关系的记录git clone 远程仓库地址克隆从0得到一个远程的Git仓库到本地使用

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号