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 原来的代码 ===== 准备合并的新代码
正在合并的分支
当处理完合并冲突后,需要完成一次提交。