赞
踩
【此文章转自乐字节】
Git 是一个开源的分布式版本控制系统,可以有效、快速的进行项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
优点:
适合分布式开发,强调个体;
公共服务器压力和数据量都不会太大;
速度快、灵活;
任意两个开发者之间可以很容易的解决冲突;
离线工作。
缺点:
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息;
权限控制不友好;如果需要对开发者限制各种权限的建议使用SVN。
Git与SVN的区别
SVN是集中式版本控制系统,而Git是分布式版本控制系统
一般工作流程如下:
从远程仓库中克隆资源作为本地仓库;
在本地仓库中进行代码修改;
在提交本地仓库前先将代码提交到暂存区;
提交修改,提交到本地仓库。本地仓库中保存修改的所有历史版本;
在需要和团队成员共享代码时,可以将修改的代码push到远程仓库。
Git 的工作流程图如下:
三大分区:
Git 的工作流程图如下:
工作区,也叫Working Directory
暂存区,也叫stage,index
版本库,也叫本地仓库,commit History
当我们把代码从git hub档下来或者说初始化git项目后,便有了这三个分区的概念。
工作区
工作区就是能看见,直接编辑的区域。对于一些新增的文件,如果没有被add到暂存区,就会以红色的形式放置在工作区。
暂存区
数据暂时存放的区域,对于add git版本控制的文件,就算是进入暂存区啦。可以理解为数据进入本地代码仓库之前存放的区域。由于还没对本地仓库生效,所以是数据暂时存放的区域。
对暂存区的文件修改后,会以蓝色的形式显示。如果第一次创建并add到暂存区的文件,由于远程仓库没有同步,所以会显示绿色。
版本库
在暂存区commit的代码会被放入版本库中。可以理解为一个本地的代码仓库,push的时候,才会把版本库的数据全都发送到远程仓库中。
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。Workspace: 工作区,就是你平时存放项目代码的地方
Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。
1、创建全新的仓库,需要用GIT管理的项目的根目录执行:
#在当前目录新建一个Git代码库
$ git init
1、另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份至本地!
#克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]
通过如下命令可以查看到文件的状态:
#查看指定文件状态
git status [filename]
#查看所有文件状态
git status
#添加所有文件到暂存区
git add .
#提交暂存区中的内容到本地仓库 -m:提交信息
git commit -m “消息内容”
分支在GIT中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!
#列出所有本地分支
git branch
#列出所有远程分支
git branch -r
#新建一个分支,但依然停留在当前分支
git branch [branch-name]
#新建一个分支,并切换到该分支
git checkout -b [branch]
#合并指定分支到当前分支
$ git merge [branch]
#删除分支
$ git branch -d [branch-name]
#删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留他的代码还是你的代码!
master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
注:每周福利均会更新,更多福利等你领取,更多技巧,欢迎在评论区一起交流!
学习Java没有那么容易,一定要掌握学习方法,初学者对于学习方法有什么不懂的可以随时找我咨询,真的是希望新手少走弯路,下面有我的java学习交流q
u n:前面是四九零,中间是五七四,后面是七五三,进qun备注123,任何问题都可以随时问我。,领取Python
,web前端开发,Python爬虫,Python数据分析,大数据开发,人工智能,Java项目,Java基础等精品学习课程。带你从零基础系统性的学好Python,Java,web前端和大数据等!做一名牛逼的程序员!
希望这些能够帮助大家从一个小白成长为大牛,最后提醒大家,不要在拼搏的年纪选择安逸,希望小编的文章能够帮助到小伙伴们!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。