GitHub为版本管理工具

常用的版本管理工具:本地化版本管理系统、集中式版本管理系统SVN、分布式版本管理系统

一、安装git(自行百度)

二、文件操作与分支管理基础

1、版本控制系统分类

集中化版本控制系统:

centralized version control systems 简称cvcs,与本地笨笨控制系统不同,集中化版本控制系统能让在不同系统上的开发者进行协调工作,这类系统注入CVS、Subversion以及Perforce等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新,这已经成文版本控制系统的标准做法,每个人都可以在一定程度上看到项目中的其他人正在做什么,而管理员也可以轻松掌握每个开发者的权限,并且管理个CVCS要远比在各个客户端上维护本地数据库来的轻松容易。集中化版本控制系统显而易见的缺点是中央服务器的单店故障,如果宕机一个小时,那么在这一个小时内,谁都无法提交更新,也就无法协同工作,要是中央服务器的磁盘发成故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险

分布式版本控制系统:

Distrubuted Version Control System,DVCS,在这类系统中,像Git、Mercurial、Bazaar以及Darcs等,客户端并不只是提交最新版本的文件快照,而是把代码仓库完整的镜像下来,包括完整的历史记录,这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库回复,因为每一次的克隆操作,实际这类系统都是一次对代码仓库的完整备份,更进一步来讲,许多这类系统都可以指定和若干个不同的远端代码仓库进行交互,借此,可以在同一个项目中,分别和不同工作小组的人相互协作,分布式版本控制系统单缺点是代码容量占用比较大

git一般工作流程 1、在工作目录中添加、修改文件;2、将需要进行版本管理的文件放入暂存区域;3、将暂存区域的文件提交到git仓库;

git管理的文件有三种该娘:已修改、已暂存、已提交

三、git操作

1、创建git本地仓库,提交文件至暂存区和本地仓库

1、进入某个路径下新建一个文件目录,进入这个文件夹中,用git init创建一个init文件,产看新建的隐藏文件,新建的文件夹就是一个本地仓库

新建一个test01.py文件,把这个文件添加到暂存区

添加至暂存区之前查看状态 git status

提交至暂存区 git add,添加之后在git status提示没有需要提交的文件

接下来需要添加到本地仓库git commit -m "提交备注",提交后再git status查看提交的状态,第一次使用默认创建的master分支,由一个head指针指向版本,再次查看状态提示没有需要修改的文件,已经是最新的文件了

修改文件后git status后会提示有东西修改,修改后还是先提交文件值暂存区后再提交至本地仓库即可

git log ,查看修改的历史记录

2、版本库回退版本才做

1、首先查看版本记录 git reflog

2、回退至版本对应的版本库,git reset --hard 105ff4a

3、撤销修改操作 checkout,增加内容后撤销

1、首先更改文件,然后运行命令git checkout -- 文件名

4、删除操作 git rm 文件名

新建python.txt文件后再删除该文件,删除后查看状态,这里的删除是指的工作区删除但是暂存区还是存在,需要git add -A才能彻底删除, 需要git commit -m

5、单个版本重复提交

版本刚一提交到仓库,发现注释或其他弄错,需要这个版本再次提交,这也称之为最后一次提交操作,一个版本重复提交,版本号不会变,git commit --amend -m "备注"

四、分支管理

在之前的操作中,每次git提交,都会把版本串成一条时间线,这条时间线就是一个分支,截止到目前,只有一条时间线,这个分支叫主分支,即master分支,HEAD哈希值指向的是当前提交分支的主干节点,在实际的开发工作中,开发人员都分配不同的开发任务,每个开发任务由于功能、难度不一致,如果写完部分代码就进行提交到master分支,会导致代码异常、代码覆盖的情况,只对这种情况,git可以使用提交分支管理进行解决,开发人员创建一个属于自己的分支,其他开发人员看不到,还继续在原来的分支上正常工作,此时开发人员想提交就提交,指到开发完毕后,再一次性合并到原来的分支上,这样既安全,又不影响其他开发人员工作,所谓的分支管理,其实就是利用git对开发人员的分支管理,包含分支创建、分支合并、分支删除等操作

1、git branch 查看当前分支状况,创建一个分支  git branch dev

2、虽然有了两个分支,但是指针还是在master分支上,需要切换至dev分支,git checkout dev ,这是新建一个分支然后将head切换至新增的分支上,分为两步;同时也可以在创建分支的就切换至新建的分支

在创建分支的就切换至新建的分支 git checkout -b 分支名

3、在新建的分支上对文件进行修改并提交

4、合并分支,将所有分支合并到master分支,需要先切换至master分支后再行合并,先git branch mster 后再git merge dev

5、删除分支git branch -d 分支名,不能在指针指向该分支时删除该分支,可以在其他分支上删除分支,不一定非要在主分支上删除分株

最新文章

  1. js 判断浏览器和ie版本号 收集
  2. Tickets——H
  3. mongodb权限管理
  4. exce生成随机数
  5. JEECMS中返回列表跳转的几种方式
  6. UML,Powerdesigner 使用方法
  7. BIP_开发案例07_将原有Report Builer报表全部转为XML Publisher形式(案例)
  8. 安装php5.5
  9. 1.JSP入门
  10. 小tips:JS之for in、Object.keys()和Object.getOwnPropertyNames()的区别
  11. 他山之石,calling by share——python中既不是传址也不是传值
  12. linux安装mysql8.0及开启远程访问
  13. 手机端页面可以左右轻微拖动的bug
  14. 学习MeteoInfo二次开发教程(八)
  15. SQL注入之Sqli-labs系列第二十四关(二阶注入)
  16. 自建mail服务器之二:hmailserver
  17. vue路由管理-保留滚动位置功能、按需加载模块名自定义
  18. 一篇文章让你入门Shell !
  19. 使用vim-pathogen 进行插件管理
  20. sqli-labs(less-11-16)

热门文章

  1. vue 弹窗禁止底层滚动
  2. golang 遍历树状结构
  3. 学习Python的书籍——入门到进阶
  4. 循环3n加1问题
  5. Docker的深入浅出
  6. DAOS 分布式异步对象存储|故障模型
  7. A. 【例题1】奶牛晒衣服
  8. SpringMVC时间格式和时区解决办法
  9. BUAA_OO_2020_第三单元总结
  10. SpringBoot项目war包部署