《分布式版本管理工具》git技术分享

简介: linux系统,创始人linus,1999年研发之后即开源。 2002年前,都是linus手动合并到代码库中。看中了BitKeeper,提供给linux免费试用权。 2005年,由于linux的一个大牛尝试破解BitKeeper。话说两周之后,linus创建了新的版本管理工具git。

一、背景


linux系统,创始人linus,1999年研发之后即开源。 2002年前,都是linus手动合并到代码库中。


看中了BitKeeper,提供给linux免费试用权。 2005年,由于linux的一个大牛尝试破解BitKeeper。


话说两周之后,linus创建了新的版本管理工具git。


二、git & github



github是网站,是基于git的代码托管平台。


三、git安装



官网下载地址:https://git-scm.com/downloads


  1. 一直下一步直至安装完成 校验 :git --version 查看版本号


  1. 配合github,查看开源项目的代码 github官网:https://github.com/


以slf4j为例,它的代码地址:https://github.com/qos-ch/slf4j


1.找到【clone or download】按钮,点击download zip (并不常用)


2.git clone + 链接地址 ,代表将远程代码克隆到本地

例如: git clone https://github.com/qos-ch/slf4j.git

在命令提示符中,先找到要存储代码的位置,然后执行clone

直接下载一个项目文件夹到本地,打开项目时,

可能需要选中Add as Maven Project这一项(pom.xml上右键)


3.配置git,获取更改的权限。

配置项:用户名和邮箱 (从github上注册获取)

命令:

git config --list 显示配置列表

git config --global user.name "${用户名}"

git config --global user.email "${邮箱}"


4.可选的配置秘钥,才能使用以git开头的链接地址,

如git@github.com:qos-ch/slf4j.git (Use SSH按钮)

在本地生成秘钥

ssh-keygen -t rsa -C "${邮箱}"

执行命令后,会提醒你设置文件夹保存key,默认是.ssh文件夹

不设置密码直接回车后,生成id_rsa.pub秘钥文件

在github上配置秘钥

用户右键 -> settings -> SSH and GPG keys -> new ssh key

验证是否添加成功

使用ssh -T git@github.com

或者直接执行 git clone git@github.com:qos-ch/slf4j.git


四、git使用



1)仓库,管理项目的最基础目录。


在github上创建。 然后clone到本地。会提醒这是一个空的仓库。


1.创建文件并提交的步骤

创建新文件后,会询问是否添加到git中,选择是。

如果文件是红色的,代表没有加入,

要通过手动添加的方式——> 项目右键 -> Git -> Add

文件从红色变为绿色,可以提交和推送。

项目右键 -> git -> commit file -> 在commit message中写上更改的备注 -> 选择commit and push -> 可以在github中看到更改和提交记录。

文件从绿色变为白色,代表和远程仓库是一致的。


2.要对文件进行更改的处理

在commit file中双击文件,可以查看到修改的内容的(和上一个版本比较)。


2)查看提交历史


git -> show history

展示谁在什么时间进行了什么修改。


查看某次提交所有相关的文件

在提交记录上右键 -> show all affected files

并且双击文件本身,可以查看对应的修改


3)回退


文件更改后,状态由白色变为蓝色。

回退更改 文件右键-> git -> revert -> 确认

回退提交 执行命令 git reset --hard HEAD~


  • –hard代表强制执行
  • HEAD~代表上一次提交 ~可以加上数字
  • HEAD~2返回上上次提交


五、git的理论知识



1)工作区和暂存区


工作区:就是存放代码的地方 (项目文件夹)


暂存区:临时存放改动的地方 (通常在新建文件时使用)


本地仓库:安全存放代码的地方


远程仓库:(github)


git add 将代码从工作区 -> 暂存区 (把文件托管git)

git commit 将代码从暂存区 -> 本地仓库 (存在一笔提交记录)

git push 将代码从本地仓库 -> 远程仓库 (促进多人合作)


2) 分支(平行时空)


互不影响又同时进行的合作方式

创建仓库时,自动创建一个master主干。


具体使用场景:

master 一般用来存放已上线的代码

开发新的功能时,创建新的分支,每个人使用自己的分支。

最终还是要合并的。 但是合并分支往往要解决冲突。


六、分支使用



1)创建分支


git branch + {分支名}

默认拉取master上代码到新创建的分支中

git checkout + {分支名}

通过查看git branch结果中 * 所在的位置,来定位分支


2)合并分支


master -> test

首先当前分支是需要合并过来代码的分支(master)

git merge test 效果是test的最新提交的代码会出现在master中。


3)冲突解决

项目右键 -> git -> conflicts resolved

三个对比框 最左侧是当前分支的代码(master) 最右侧待合并的分支代码(test) 中间想要的合并结果


4)推送到远程仓库

git push origin test:test

test:test 冒号前代表 本地分支的名字

冒号后代表 远程分支的名字


七、git仓库



分为本地仓库和远程仓库


  1. git init 新建一个本地代码库
  2. git clone 从远程拷贝
  3. git pull(拉取) 拿到远程仓库的修改
  4. git push(推送)提交给远程仓库修改


如果要创建一个自己的分支 确认要拉取代码的分支

确保是最新代码 git pull

然后执行创建分支的流程(从master拉取)

如果需要,再合并一次代码


写好代码后,再推送给远程仓库

让代码可以上线,将分支代码再合并回master中


八、git和svn那些事



git是分布式,svn是集中式的 git支持离线,svn必须联网


git学习成本高,复杂概念多,svn更简单

git一入深似海,从此svn是路人。


git分支廉价,svn分支昂贵


九、svn - 版本控制工具


1.下载安装 官网地址:https://subversion.apache.org/packages.html 找到最下方的

TortoiseSVN 小乌龟客户端

链接:https://osdn.net/projects/tortoisesvn/storage/1.13.1/Application/TortoiseSVN-1.13.1.28686-x64-svn-1.13.0.msi/

(验证:在文件夹中右键 能够看到svn checkout)

VisualSVN svn的服务端 找到VisualSVN Server的下载链接

链接:https://www.visualsvn.com/files/VisualSVN-Server-4.1.3-x64.msi


2.创建仓库、用户等 创建了用户、用户组,并且给用户组赋权 读写仓库。


3.下载代码 使用svn checkout时, 需要copy服务端仓库的url地址。 需要登录用户名和密码


4.提交代码 svn commit


相关文章
|
8月前
|
Linux 开发工具 数据安全/隐私保护
分布式版本控制git
分布式版本控制git
|
8月前
|
Linux 开发工具 数据安全/隐私保护
《Linux从练气到飞升》No.08 Linux的版本管理工具 git
《Linux从练气到飞升》No.08 Linux的版本管理工具 git
66 0
|
8天前
|
开发工具 git 开发者
图解Git——分布式Git《Pro Git》
分布式工作流程主要分为三种模式:集中式工作流、集成管理者工作流和主管与副主管工作流。集中式工作流中,所有开发者同步同一个中央仓库,通过拉取和提交协作;集成管理者工作流中,开发者拥有自己的仓库,通过 `fork` 和请求合并进行协作;主管与副主管工作流适用于大型项目,由主管最终合并代码,副主管负责各自模块。贡献代码时,需考虑活跃贡献者数量、工作流程、提交权限等因素,确保代码合并成功并遵循提交准则。
30 11
|
1月前
|
物联网 调度 vr&ar
鸿蒙HarmonyOS应用开发 |鸿蒙技术分享HarmonyOS Next 深度解析:分布式能力与跨设备协作实战
鸿蒙技术分享:HarmonyOS Next 深度解析 随着万物互联时代的到来,华为发布的 HarmonyOS Next 在技术架构和生态体验上实现了重大升级。本文从技术架构、生态优势和开发实践三方面深入探讨其特点,并通过跨设备笔记应用实战案例,展示其强大的分布式能力和多设备协作功能。核心亮点包括新一代微内核架构、统一开发语言 ArkTS 和多模态交互支持。开发者可借助 DevEco Studio 4.0 快速上手,体验高效、灵活的开发过程。 239个字符
229 13
鸿蒙HarmonyOS应用开发 |鸿蒙技术分享HarmonyOS Next 深度解析:分布式能力与跨设备协作实战
|
5月前
|
存储 算法 开发工具
|
2月前
|
开发工具 git 开发者
Git 作为最流行的分布式版本控制系统之一,为开发者提供了强大的功能和灵活的操作方式
本文深入介绍了 Git 中的 `git rebase` 操作,涵盖其基本概念、原理、与 `git merge` 的区别、具体操作步骤及应用场景,如保持提交历史整洁、解决合并冲突等,并讨论了其优缺点。强调在公共分支上谨慎使用 rebase,以避免潜在的风险。
44 6
|
2月前
|
存储 算法 开发工具
Git 作为最流行的分布式版本控制系统之一
Git 作为最流行的分布式版本控制系统之一,为开发者提供了强大的功能和灵活的操作方式
56 2
|
4月前
|
运维 NoSQL Java
SpringBoot接入轻量级分布式日志框架GrayLog技术分享
在当今的软件开发环境中,日志管理扮演着至关重要的角色,尤其是在微服务架构下,分布式日志的统一收集、分析和展示成为了开发者和运维人员必须面对的问题。GrayLog作为一个轻量级的分布式日志框架,以其简洁、高效和易部署的特性,逐渐受到广大开发者的青睐。本文将详细介绍如何在SpringBoot项目中接入GrayLog,以实现日志的集中管理和分析。
361 1
|
7月前
|
网络协议 安全 分布式数据库
技术分享:分布式数据库DNS服务器的架构思路
技术分享:分布式数据库DNS服务器的架构思路
147 0
|
8月前
|
存储 Linux 开发工具
Git 分布式版本控制系统基本概念和操作命令
Git 分布式版本控制系统基本概念和操作命令
185 0