git分布式版本管理工具学习笔记

综述:来了新的公司,以前用的是svn,现在是git,在这里总结学习下,提高自己的认识。

1.git介绍

      svn、vcss系统等都是集中式的版本控制系统,git是分布式的。两者的区别是:

git

  • 适合分布式开发,强调个体。
  • 公共服务器压力和数据量都不会太大。
  • 速度快、灵活。
  • 任意两个开发者之间可以很容易的解决冲突。
  • 离线工作。
  • 资料少
  • 学习周期相对而言比较长。
  • 不符合常规思维。
  • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

SVN

  • 管理方便,逻辑明确,符合一般人思维习惯。
  • 易于管理,集中式服务器更能保证安全性。
  • 代码一致性非常高。
  • 适合开发人数不多的项目开发。

2.git常见问题汇总

面试问题:

  • 在开发的过程中,如果发现线上的代码存在问题,应该怎样处理?

在集中库创建一个hotfix分支,进行修改后将其push到集中库中,然后发送一个pr向QA请求合并代码到production库中。

  • 正常情况下和紧急情况下提交git版本的流程的不同之处?

3.当自己提交的代码和同事的代码冲突时的解决办法?

首先将远程的分支拉下来。

做好代码的取舍,解决冲突,然后再次将代码提交即可。

解决外冲突时候还要再提交一次pr。

4.使用git的技巧分享

  • 设置git密码,避免每次上传代码都要输入密码
  • 将webstorm和git打通,直接在编辑器中操作git会更加方便
  • git除了git bash ,git Gui两种操作模式之外,还可以安装和SVN类似的可视化操作工具,编辑代码更加方便

5.关于  git stash ,git pop的使用?非常重要;

     每次从远程拉取代码的时候,本地有自己临时修改的代码,先使用git stash将自己修改的临时代码保存起来,拉取下来之后,再使用git pop将修改的代码合并进去,这个操作,针对冲突的情况有大的用处,如果没有冲突,则没有必要性;

6.关于解决git冲突的流程?

使用git sync,弹出弹框后,选择从远程分支拉去代码,拉下来之后,解决冲突,解决完之后,标志文件为resolved状态,

标志之后,使用switch/checkout切换后自己的topic分支,再起提交修改之后的topic分支代码即可;

还有代码在冲突时,是针对每一行内容的比对,同时修改一个文件,只要不是同一个内容,不会引起冲突。

7.git分布式版本管理系统架构图

    

上图展示了git的整体架构,以及和各部分相关的主要命令。先说明下其中涉及的各部分。

工作区(working directory),简言之就是你工作的区域。对于git而言,就是的本地工作目录。工作区的内容会包含提交到暂存区和版本库(当前提交点)的内容,同时也包含自己的修改内容。

暂存区(stage area, 又称为索引区index),是git中一个非常重要的概念。是我们把修改提交版本库前的一个过渡阶段。查看GIT自带帮助手册的时候,通常以index来表示暂存区。在工作目录下有一个.git的目录,里面有个index文件,存储着关于暂存区的内容。git add命令将工作区内容添加到暂存区。

本地仓库(local repository),版本控制系统的仓库,存在于本地。当执行git commit命令后,会将暂存区内容提交到仓库之中。在工作区下面有.git的目录,这个目录下的内容不属于工作区,里面便是仓库的数据信息,暂存区相关内容也在其中。这里也可以使用merge或rebase将远程仓库副本合并到本地仓库。图中的只有merge,注意这里也可以使用rebase。

远程版本库(remote repository),与本地仓库概念基本一致,不同之处在于一个存在远程,可用于远程协作,一个却是存在于本地。通过push/pull可实现本地与远程的交互;

远程仓库副本,可以理解为存在于本地的远程仓库缓存。如需更新,可通过git fetch/pull命令获取远程仓库内容。使用fetch获取时,并未合并到本地仓库,此时可使用git merge实现远程仓库副本与本地仓库的合并。git pull 根据配置的不同,可为git fetch + git merge 或 git fetch + git rebase。rebase和merge的区别可以自己去网上找些资料了解下。

8.git架构参考文章

https://zhuanlan.zhihu.com/p/59591617

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值