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 分支名,不能在指针指向该分支时删除该分支,可以在其他分支上删除分支,不一定非要在主分支上删除分株