Git分布式版本控制系统的细节介绍

Git简单介绍

是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理;
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库.

Git的工作流程:

在这里插入图片描述

Git的功能特性:

从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch(拉)下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员

Git怎么进行项目管理?

(1)Git创建一个项目
(2)本地创建一个工程
(3)使用git命令将这个项目交给git进行管理
(4)创建分支—将需要提交的文件commit到git上
(5)直接push这个空的分支提交到上面的分支上

Git有哪几种状态?

未跟踪(untrack):红色,表示文件为新增加的。
已修改(modified):蓝色,表示修改了文件,但还没保存到git仓库中。
已暂存(staged):绿色,表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交(committed):白色,表示文件已保存在git仓库中。

Git提交代码的流程是怎么样的?

工作目录-----git add----本地计算机—git commit—本地仓库----git push-----远程仓库
在这里插入图片描述

Git遇到冲突问题怎么解决?

(1)找到冲突的代码
(2)在合并的过程中,idea会把冲突的代码显示出来,然后找到冲突的代码删掉,但不一定是全部删掉,因为有可能有同事新加了东西,所以一定要检查冲突中的代码,先保留别人提交的代码,再把自己的代码交上去,然后再进行重新提交给远程仓库
(3)提交代码的步骤永远是add,commit,push
发生冲突,也可以使用命令:
通过 git stash 命令,把工作区的修改提交到栈区,目的是保存工作区的修改;
通过 git pull 命令,拉取远程分支上的代码并合并到本地分支,目的是消除冲突;
通过 git stash pop 命令,把保存在栈区的修改部分合并到最新的工作空间中;

关于git stash 应用场景:

我们有时会遇到这样的情况,正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,
但是新功能做到了一半你又不想提交,这时就可以使用git stash命令先把当前进度(工作区和暂存区)保存起来,
然后切换到另一个分支去修改bug,修改完提交后,再切回dev分支,使用git stash pop来恢复之前的进度继续开发新功能

什么情况下会发生冲突呢?

只要有2个或者2个以上的人修改文件,这个代码冲突永远都会出现。
所以我们要尽量避免2个或2个以上的人改同一个文件

怎么去避免?

(1)这个就在于项目经理或者就是说我们在开发过程中自己就要去考虑这个问题,把代码的包或者类名要分好,尽量不要发生冲突
(2)或者说在写新代码或者改代码之前,可以先把服务器上最新的代码pull到本地,然后在这个基础上进行修改或者写新代码,改完后或者写完后测试没有毛病了,就马上进行提交

Git项目中代码怎么进行管理的?

创建分支和给代码打标签

Git进行项目管理有什么分支吗?

四个环境以及各自的功能特点:
dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。
test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定
pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。
pro(master)环境: 生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境

附:分支在实际中有什么用呢?

假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,
不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

怎么办?

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,
而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作

如何把本地仓库的内容推向一个空的远程仓库?

首先确保本地仓库与远程之间是连通的。如果提交失败,则需要进行下面的命令进行连通:
1)git remote add origin XXXX
注意:XXXX 是你的远程仓库地址。
如果是第一次推送,则进行下面命令:
2)git push -u origin master
注意:-u 是指定 origin 为默认主分支
3)之后的提交,只需要下面的命令:
git push origin master

https 和 SSH 的区别:

1.前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,
且需要先添加 SSH key ,否则无法克隆。
2.https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,
如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

如何访问我的私库,协同工作?

他人:把他的公钥发给我,我添加到ssh keys,标注是谁的key
我:把我的私库地址给他(默认情况他人是看不到我的私库地址的)
1


  1. 编写不易,如果有帮助到的话,可以关注,点赞和收藏哦~ ↩︎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值