赞
踩
Git是免费的,开源的分布式版本控制系统,可以快速处理从小型到大型的各种项目
版本控制是一种记录文件变化,以便将来查阅特定版本修订情况的系统。重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本的切换。-个人开发过渡到团队协作
简单理解就像你写的一篇论文修改了好几个版本,而这些版本被记录在一个文件中,我们可以查看到这些修改的版本。
集中式版本控制工具
概念:取出最新文件,再提交最新文件
好处:项目中每一个人可以看到其他人正在做什么,管理员也能管理每个开发者的权限
坏处:中央服务器的单点故障,中央服务器故障,谁都无法进行提交
分布式版本控制工具
每个程序员的电脑就是自己的代码库,由远程库统一管理
分布式解决集中式版本控制系统的缺陷:
workspace:工作区:磁盘存放代码的地方
Index/Stage:暂存区:临时存储,可以操作删除添加
Repository:仓库区(或本地仓库):历史版本,不能进行删除
Remote:远程仓库:代码托管中心是基于网络服务器远程仓库
代码托管中心:
链接: git官网
查看安装git --version
安装完成后,还需要最后一步设置,在命令行输入如下:
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
注意:git config --global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。
安装过程中的问题:
安装Git没有.ssl文件解决
打开git bash,输入ssh-keygen
连续回车
命令 | 功能 |
---|---|
Git config --global user.name 用户名 | 设置用户签名 |
Git config --global user.email 邮箱 | 设置用户签名 |
Git init | 初始化本地库 |
Git status | 查看本地库状态 |
Git add 文件名 | 添加到暂存区 |
Git commit -m“日志信息” 文件名 | 提交到本地库 |
Git reflog | 查看历史记录 |
Git reset --hard | 版本穿梭 |
设置用户签名
Git config --global user.name 用户名
Git config --global user.email 邮箱
首次安装必须设置一下用户签名,否则无法提交代码,这里的用户签名与以后登录GitHub无关
初始化本地库
Git init
查看本地库状态
git status
这里hello.txt是红色,代表只是在工作区添加,并没有添加到暂存区
添加暂存区
Git add
CRLF是windows里的换行符,LF是linux里的换行符,自动转
这里hello.txt是绿色,代表添加到缓存区,如果从缓存区删掉,工作区也存在
提交本地库
Git commit -m“日志信息” 文件名
修改文件
这里insertion(+),insertion(-),代表新增一行,删除一行,把改动的原数据删除再重新添加
历史版本,版本穿梭
Git reflog:查看日志信息
Git log:查看详细日志命令
Git reset --hand 版本号:切换版本
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支的操作
项目 | Value |
---|---|
Git branch 分支名 | 创建分支 |
Git branch -v | 查看分支 |
Git checkout分支名 | 切换分支 |
Git merge 分支名 | 把指定分支合并到当前分支上 |
冲突产生的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
查看状态(检测到有文件有两处修改)
这里不知道取哪个分支的数据,会报红
保存后,添加到暂存区,执行提交(这里git commit不能带文件名)
这里合并分支只会修改你合并后的分支,你原本修改的分支不会变
HTTPS与HTTP
HTTPS:首先先从我们的应用入手,说到HTTPS就不得不说到HTTP了,当我们打开的网站前面的前缀是由https://开头的就说明了这个网站用到了https了,类似我们的银行网站,网络购票网站,淘宝,天猫。可以看到一个共同的特点,这些网站都或多或少涉及到金钱的交易,这就涉及到一个交易安全的问题。在这里可以简单的理解https是一个secure http(安全的http)当然实际上并不是那么简单啦。
SSH:我们经常通过ssh命令来连接服务器。没错的,ssh就是一种保障网络通信安全的协议,我们可以利用ssh建立起一个安全隧道,用这个安全隧道来连接我们的服务器,实现远程桌面。
命令 | Value |
---|---|
Git remote -v | 查看当前所有远程地址别名 |
Git remote add 别名 远程地址 | 起别名 |
Git push别名 分支 | 推送本地分支上的内容到远程仓库 |
Git clone远程地址 | 将远程仓库的内推克隆到本地 |
Git pull远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
这里可以搜项目,属于团队外的人可以查看到你的项目,并可以帮忙改项目
Fork后萌萌就有了这个项目,那么它就会修改代码,
修改的代码展示出来
ssh-keygen -t rsa -C 登录邮箱
获取公钥:cat id_rsa.pub
复制下来
从远程仓库拉取文件
通过SSH提交远程库
github,和gitlab都是基于git开发的管理代码的软件。
github的登录网站:https://github.com/
gitlab的登录网站:https://gitlab.com/users/sign_in
如果只单纯在这两个网站创建账号并创建项目,最大的区别是:github选择新建项目为私人时需要收费!而gitlab选择新建项目为私人时不需要收费!
虽然两个公司都提供了私人仓库的功能供个人和企业用户使用,即使两个公司的数据库很安全,但是很多公司是采用内网进行办公和传输数据,如果通过内网和外网这两个公司服务器进行代码和相关敏感数据的传输,传输途中容易被不法分子获取到数据,从而造成数据泄露。 因为很多公司都格外重视自己的代码成果,所以目前主流都是公司用自己买的服务器去搭建公司内部使用的gitlab,且gitlab支持一些插件写入自己的服务器脚本,从而可以设置公司每位成员的文件使用权限,从而确保公司项目代码的最大程度的保密和安全!
Linux服务器需要提前安装几个服务
yum install -y curl policycoreutils-python openssh-server
rpm -Uvh gitlab-ce-15.1.0-ce.0.el7.x86_64.rpm
这里我出错
[root@minio-1 gitlab]# rpm -i gitlab-ce-14.9.3-ce.0.el8.x86_64.rpm
警告:gitlab-ce-14.9.3-ce.0.el8.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID f27eab47: NOKEY
错误:依赖检测失败:
policycoreutils-python-utils 被 gitlab-ce-14.9.3-ce.0.el8.x86_64 需要
解决办法
rpm -i gitlab-ce-14.9.3-ce.0.el8.x86_64.rpm --nodeps --force
这是它安装的文档:gitlab官方文档
根据情况按照文档来。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。