git现在是公司必备,一定要会的东西
Git概念
Git是一个免费的,开源的分布式版本控制系统,可以快速高效处理小型到大型的项目
git历史
截取百度百科
林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds, 1969年~ ),著名的电脑程序员。Linux内核的发明人及该计划的合作者 [1] 。托瓦兹利用个人时间及器材创造出了这套当今全球最流行的操作系统(作业系统)内核之一。现受聘于开放源代码开发实验室(OSDL:Open Source Development Labs, Inc),全力开发Linux内核。
21岁把开源的linux系统创造出来,因为这个天才支持开源,想让跟多的程序源投入,于是linux会进行多人开发和修订,那么就需要版本控制,起初是和BitKeeper合作,因为linux开发人员想方设法利用反编译等工具看源码,而BitKeeper不想开源,从而终止合作
那么天才程序员Linus Benedict Torvalds在一个月就把git的主体功能全部开发完成
什么是版本控制?
版本控制,每一次对项目里面的文件的更新都是项目的一个新版本,把这些版本记录下来,方便回滚,也方面查看版本之间的区别在哪(就是修改了哪里),就是版本控制
为什么要有版本控制?
一个项目,独立开发没问题,可以不需要版本控制,但是这个项目周期长,你可能会忘记以前对某一个点的修改,然后需要重新修改,你会发现很困难,项目一大,很难找到。
公司里面的项目不是独立开发,是团队协作开发,那么每一个人要对自己的代码负责。但是也总是会发生因为代码逻辑或者一些其他问题不过关最后commit到项目中的,测试或者生产环境出现bug,经过单元测试可以定位问题,来后来定位谁写的。还有一种情况程序员不小心乱改,删除了一部分代码并且没有注意到那段代码与其他代码的关连程度,然后commit。还有很多情况,这里不一一举例
版本控制器就带来了便利,因为版本控制可以回到以前某一个commit的节点
版本管理系统的分类
集中化版本管理系统
所有开发机都是客户端,有一个中央服务器,只要中央服务器不挂,那么合作的客户机的指定版本拉取,上传都没有问题,
缺点:已经说过了,中央服务器挂了就不行了
2 版本 存储 与1版本的差异
3 版本 存储 与2版本的差异
分布式版本管理系统
所有的开发机既是服务器,也是客户端,每一台机器都有对历史和最新版本的存储
Git安装
博客搭建那一部分我给了安装步骤链接
Git本地结构
分为三个区
本地库:所有的版本
暂存区:打算要提交,但是还未提交的(git commit 到本地库)
工作区:写代码的地方 (git add 到暂存区)
代码托管中心
任务是维护远程库
本地库与远程库的交互方式,分两种:
1)团队内部协作
push clone
2)跨团队协作
push clone fork
托管中心种类
局域网环境下:可以搭建GitLab服务器作为代码托管中心,GitLab可以自己搭建
外网就是:github,gitee,这个东西是现成的
使用
初始化本地仓库
新建一个文件夹
git base here
鼠标右击Options
在里面设置字符集
1 | 查看版本 |
基本命令
先创建一个待操作的的文件
1 | git add test.txt #把test.txt放到暂存区 |
前进和回退命令
1 | git reset --hard [key值也叫索引] |
比对命令
1 | git diff [文件名]不带文件名就全部比对 |
注意
git命令必须在本地仓库目录下
分支
版本控制过程中,使用多条线同时推进多个任务,这里的多条线就是多个分支
一般新的独立的功能就必须开辟一个新分支,为了不影响主干的使用
独立功能模块开发完成,就需要跟主线合并,成为一个大版本
master——– —–|———–|
| | |
|brach1—–| |
| |
|brach2——————|
|出现bug,进行hot_fix——-》
分支第一版本默认是master最后版本的索引
好处
同时多个分支可以并行开发,互相不影响,互相不耽误,提高开发效率
如果一个分支功能开发失败,对主干也不产生影响
使用
1 | git branch -v #查看分支 |
GitHub公网远程库
注册账号 https://github.io
创建一个库 拿到地址https://github.com/NepenthesZGW/ProblemDiscussionPlatform.git
基本操作
1 | 新建文件夹 |
邀请团队
搜索管理windows凭据
删除git缓存
为了演示加入团队的操作
1 |
|
拉取数据
pull操作
1 | 相当于 fetch 和 merge |
团队合作冲突
1 | 如果团队中多个人对同一个文件进行了修改,此时的拉取操作就会产生冲突 |
跨团队合作
1 | 得到需要合作的远程库地址 |
SSH免密登录
获取ssh地址
1 | 进入主目录 |
IDEA使用git
idea创建项目
进入settings
version Control有git
选择git.exe路径
VCS –>import into Version Control —>create git Repository
右键可以选择git 然后add 到暂存区
拉取
git pull 远程库url 分支 –allow-unrelated-histories
idea中拉取的话,右键git –>repostory–>pull
推送
git push -u 远程库地址 分支 -f
idea中推送的话,右键git –>repostory–>push
克隆远程库到本地
file–》new –》project from version control…—>git
idea解决冲突
还是一样,先pull,然后手动解决,最后push
注意:
团队合作尽量不要在一个文件里面写
或者先pull然后push
- 本文作者: 忘忧症
- 本文链接: https://NepenthesZGW.github.io/2020/06/12/项目管理/git/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!