day12:版本控制器

版本控制

使用到的命令:

|--------|----------------|
| ls -al | 查看当前目录下的文件及文件夹 |
| mkdir | 新建目录 |
| rm -rf | 递归强制删除文件夹 |

一、安装配置

1、下载地址 Git 2、初始配置 #用户名 git config --global user.name "自定义用户名"

#邮箱(公司的联系方式--追责) git config --global user.email "邮箱地址"

说明: - 安装好git后,第一步就需要初始化个人信息。 - 设置好后查询,检查是否配置成功,不加用户名或邮箱就代表查询

二、初始化本地仓库

1、版本库 用于跟踪项目代码的仓库(目录),每个本地仓库中会创建一个隐藏文件夹 .git 同级目录下做的所有操作都会被git监管。

2、初始化本地仓库 在普通文件夹下执行如下命令,可以将该文件夹初始化为本地仓库: git init

3、本地仓库的构成 - 工作区:存放代码的位置 - 版本库:工作区中.git文件夹,其中包含暂存区 和 分支区 - 暂存区:通过git add/rm命令执行后,操作保存的位置(类似于缓存区) - 分支区:是最终版本信息保存的位置,git commit 命令提交的信息都会存储在 分支区,通常版本库初始化后会默认创建一个本地分支(master) 也叫主分支。master最好不要删除。

工作区代码发生修改--git add(添加)-->暂存区--git commit(提交)-->分支区

三、版本管理

1、提交新文件

1-在工作区创建新文件 ​ 2-查看本地仓库的状态 ​ git status ​ 3-添加新建文件的状态到暂存区 ​ git add 文件名 ​ 4-将暂存区的状态提交到本地分支区 ​ git commit -m "备注信息"

2、修改文件

与提交新文件的流程步骤相同 ​

3、查看历史版本

#查看提交的详细日志信息 git log

#查看基本日志信息 git log --pretty=oneline

#查看详细的操作日志 git reflog

4、版本回滚

git reset --hard HEAD^ ​ ---或者--- ​ git reset --hard commitID ​ 说明: ​ - HEAD 头指针指向当前最新的代码(当前所在版本) ​ - ^ 版本回滚到最近一次提交(回跳一个版本) ​ - commitID: 执行commit时随机生成的id号,id号取前>=7位即可

5、代码撤销

#只撤销工作区的修改 git checkout -- <file>...

#撤销暂存区的状态 第一步:从暂存撤销回工作区 git reset HEAD <file>...

第二步:撤销工作区 git checkout -- <file>...

#已经提交到本地分支的只需要用版本回滚

6、删除文件

情况一:通过物理删除,利用git记录操作 ​ - rm -f 文件 ​ - git add/rm 文件... ​ - git commit -m "备注"

情况二:利用git的rm命令执行删除

git rm 文件 #删除文件并添加暂存

git commit -m "备注"

四、远程仓库

1、定义

如果需要将项目托管在支持git的服务中心时,要求服务中心能24小时运行,还可以提供其他的管理(用户,项目,用户组,权限)操作。

2、远程仓库分类

地址
Github https://github.com 国外
码云 Gitee - 基于 Git 的代码托管和研发协作平台 国内
极狐 gitlab,gitblit 私有

3、注册并新建远程仓库

创建的远程仓库一般就是项目名

创建远程仓库的配置项:

初始化仓库:

选择语言 -- 选择开发项目的主要语言(计算机语言)

gitignore --配置该文件的文件名 或文件夹将不会被git跟踪管理

开源许可 --apache 2.0

设置模板:

Readme文件 --项目的说明文件

选择分支模型:

没有特殊要求直接选择默认的master

4、远程仓库与本地仓库的关联

由于本地的git与远程仓库进行代码跟踪时,对数据的安全性有绝对性要求。 ​ 因此可以利用ssh协议完成数据传输的加解密过程。 ssh配置流程: ​ 本地:

1-在git bash上通过指令生成ssh的公钥和密钥(-t rsa表示加密算法)

ssh-keygen -t rsa -C "git初始化配置的邮箱地址"

2-进入用户目录下的.ssh文件夹

cd ~/.ssh/

说明:在文件夹中有两个文件idrsa(密钥)id rsa.pub(公钥)

密钥文件自己保存,不能对外暴露。公钥是配置到要进行交互的服务端(码云)。

3-在码云控制台配置公钥 控制台-设置-安全设置-ssh公钥-添加公钥 说明: 公钥标题可以自定义,公钥在git bash中查看id_rsa.pub文件 cat ~/.ssh/id_rsa.pub

仓库关联: 情况一:远程仓库已经存在,只需要将仓库拉取到本地并完成关联。 git clone git@gitee.com:用户名/仓库名.git

情况二:先有本地仓库,再关联远程仓库 1-先初始化本地仓库,项目根目录执行命令 git init

复制代码
2-在远程创建一个名称与本地仓库同名的仓库
3-远程仓库关联
    #在本地添加一个名叫origin的远程仓库地址
    git remote add origin git@gitee.com:用户名/仓库名.git
​
    #将远程代码拉取到本地,并解决历史差异
    git pull origin master --allow-unrelated-histories
    
    #在第一次推送本地代码到远程仓库时可以添加-u参数
    git push -u origin master

五、集成git工具到idea编辑器

file->settings->versioncontrol->git

六、分支管理

1、查询本地所有分支 git branch 2、创建本地分支 git branch 分支名称

3、切换分支 git checkout 分支名称 4、创建并切换分支 git checkout -b 分支名称

5、合并分支 git merge 分支名 //快速合并(只保留一条master主分支) git merge --no-ff 分支名 //关闭快速合并(保留合并时的分支信息)

注意:合并分支时需要先切换到主分支。

七、代码合并冲突处理

如果有多个人修改了同一个文件会出现合并冲突。 ​ 删除特殊内容: ​ <<<<<<< HEAD ​ 原来的代码 ​ ===== ​ 准备合并的新代码

正在合并的分支

当处理完合并冲突后,需要完成一次提交。

相关推荐
PersistJiao21 分钟前
Spark 分布式计算中网络传输和序列化的关系(二)
大数据·网络·spark·序列化·分布式计算
九河云32 分钟前
如何对AWS进行节省
大数据·云计算·aws
FreeIPCC1 小时前
谈一下开源生态对 AI人工智能大模型的促进作用
大数据·人工智能·机器人·开源
梦幻通灵1 小时前
ES分词环境实战
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客1 小时前
Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
大数据·运维·elasticsearch·搜索引擎·全文检索
天冬忘忧2 小时前
Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化
大数据·分布式·kafka
sevevty-seven3 小时前
幻读是什么?用什么隔离级别可以防止幻读
大数据·sql
Yz98764 小时前
hive复杂数据类型Array & Map & Struct & 炸裂函数explode
大数据·数据库·数据仓库·hive·hadoop·数据库开发·big data
infiniteWei4 小时前
【Lucene】搜索引擎和文档相关性评分 BM25 算法的工作原理
算法·搜索引擎·lucene
那一抹阳光多灿烂5 小时前
Spark中的Stage概念
大数据·spark