git 入门学习

git概述

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。

Git远程库是基于网络服务器的远程代码仓库,在局域网里有Gitlab,互联网里国内有Gitee码云,国外有GitHub。

Git方便维护版本,可在各个版本间调整、并行,进行项目团队协作。

版本控制

这是一种记录文件内容变化、以便将来查阅特定版本修订情况的系统,使个人开发过渡到团队协作。

版本控制工具

集中式:CVS、SVN(Subversion)、VSS等
优点:管理员可控制开发者权限,管理集中化的版本控制系统
缺点:中央服务器单点故障时,无法更新,无法协同工作

分布式:Git、 Mercurial、 Bazaar、 Darcs等
优点:服务器断网时不影响开发,每个开发者的客户端保存着完整项目记录

安装(Mac)

  • 官网下载对应版本
  • 安装Xcode自带Git

安装后在终端输入git --version 查看版本

git --version
git version 2.30.1 (Apple Git-130)

配置用户和邮箱
Git首次安装必须设置

git config --global user.name “name” #姓名
git config --global user.email “xxx@mail.com” #邮箱

使用Git

在这里插入图片描述

初始化本地库

git init
指定一个目录,使用该目录打开终端,输入git init,初始化后该目录为git工作区。该目录下生成一个隐藏目录/.git,这个目录也叫版本库
cmd+shift+. 查看隐藏文件
在这里插入图片描述

查看本地库状态

git status

首次查看,无文件
在这里插入图片描述

新增文件后查看,检测到未追踪的文件
在这里插入图片描述

添加暂存区

git add 文件名

git add helloWorld.txt

再次查看状态,检测到暂存区有新文件
在这里插入图片描述

提交本地库

git commit -m "日志信息" 文件名

git commit -m "my first commit" helloWorld.txt

在这里插入图片描述
在这里插入图片描述

修改文件后再提交本地库

修改文件:vim 文件名
在这里插入图片描述

提交至暂存区:git add 文件名
在这里插入图片描述

提交本地库:git commit -m "日志信息" 文件名
在这里插入图片描述

查看历史版本

git reflog 查看版本信息 / 刷新日志
git log 查看版本详细信息
在这里插入图片描述

切换版本

git reset --hard 版本号

git reset --hard 9a4fbec
# head指针转向指定版本
HEAD is now at 9a4fbec my first commit 

在这里插入图片描述

使用Git 分支

在开发时可以多人配合,同时推进多个任务,不仅可以提高开发效率,且在开发自己任务分支时不会影响主线分支的运行。

查看分支

git branch -v
‘*’ 指向当前分区
在这里插入图片描述

创建分支

git branch 分支名

切换分支

git checkout 分支名

合并分支

git merge 分支名

指针指向master时合并分支hot-fix,首次合并时出现提示,意为请输入提交消息以解释为什么需要进行此合并
在这里插入图片描述
按提示输入备注后,显示由“递归”策略进行的合并
在这里插入图片描述
合并后再次分别通过master/hot-fix修改文件,在不同行分别添加master test / hot-fix test ,添加提交本地库后再次合并,出现提示
在这里插入图片描述
说明产生合并冲突,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法判断使用哪套,需要人为修改决定合并文件内容
在这里插入图片描述

特殊符号
<<<<<<< HEAD
当前分支的代码=======
合并过来的代码>>>>>>> hot-fix

为了解决冲突,即人工确认最终合并保留的代码,删除特殊符号,调整代码
在这里插入图片描述

修改后,执行提交,注意此时使用git commit 命令不能带文件名,可能报错(fatal:cannot do a partial commit during a merge),如执行成功
在这里插入图片描述

master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD 决定的。所以创建分支的本质就是多创建一个指针。指针变化提示
在这里插入图片描述

注意:每一次修改都需要重新添加暂存区提交本地库

分支补充

在本地库下游隐藏文件夹/.git,其中HEAD文件指针指向当前分支,根据当前分支在/refs文件夹下的/heads文件夹查找对应分支文件,指针指向当前版本号
在这里插入图片描述
在这里插入图片描述

git团队协作机制

团队内协作

本地库-主创建远程仓库并推送代码,其他人克隆远程仓库到本地进行修改,上传远程库需要元上传者邀请
在这里插入图片描述

跨团队协作

将远程仓库地址发送给邀请跨团队协作的人,他通过代码托管中心收到链接,点击fork将项目叉到本地仓库,成功后可在线编辑叉取到的文件,编辑完毕提交并点击pull request。远程库-A收到pull request,调整确认后点击merge pull request合并代码
在这里插入图片描述

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值