一.概念
- 分布式版本控制系统。诞生于Linux社区,有兴趣可以去了解下git的前世今生。
- 与集中式版本控制有明显区别。集中式:集中管理的服务器,保存所有的修订版本,协同工作的人通过客户端连接服务器,取出最新文件或者提交更新。分布式:每个人,都有一个版本库,人人平等,每次提取都是代码仓库的一次备份,如果你修改文件A,你同事也修改了文件A,只需要把各自的修改推送给对方即可。
二.git安装
传送门==>https://gitforwindows.org/
下载完后,开始安装git
默认安装即可
git安装完成。
三.小乌龟安装和汉化
传送门===>https://download.tortoisegit.org/tgit/2.8.0.0/ 这是2.8版本,可以自己找需要的版本,然后根据自己电脑配置下载。也可以下载个语言包
下载完成后,先安装小乌龟,在汉化。
不停的next安装,直到完成
完成后,打开下载的语言包进行汉化(针对英语不好的同学)
把√打上,语言包就应用上了。查看一下是否都安装完成,很简单。我们在桌面上,右键。
已经有git,和汉化的小乌龟。
四.基本操作
在代码拖管平台上,注册和创建项目。如github,开源中国。创建完后,复制项目地址
本地创建一个空文件夹,作为本地仓库。在文件夹内,右键->git克隆。url我们刚才复制的地址
确认后,还得添加一个git的基本信息配置,右键能看到小乌龟,鼠标停放,然后进入设置
拉取时要求输入用户名和密码,就是在代码托管平台上时注册的,之后就开始克隆项目镜像。
已经克隆完毕。这是我们的工作区,我们可以任意在这边修改和添加。我们先尝试添加一个文件试试。
创建一个文件,里面随意添加一些内容
先进行添加文件操作,现在的操作都是在本地仓库中进行的。
然后把本地的暂存区(可先了解git工作流程)的内容提交到本地仓库。
提交到本地仓库后,要推送到代码托管平台。右键进行推送(push)。
推送成功,我们现在去代码托管平台看看吧。
是不是已经推送到代码平台了,然后跟我们同分支下开发的同事。拉取时就能看到了我们的文件。
下面我们对这文件进行删除操作。把刚才我们的test文件删除,提交到本地仓库
提交完成后,跟添加操作一样,推送到代码托管
在到代码平台查看,发现文件已被删除。
修改文件,添加文件夹。也是一样的操作,就不介绍了。
五.分支
我们来玩下分支的概念。
在工作中,我有个想法不确定,不知道是否正确。又不想影响到主干内容,这时,我们就可以创建一个分支,来测试自己的想法。
我们先来看下目前分支的文件内容,待会好跟分支对比。test文件
我们来创建一个分支
分支名称随意,都是自己本地仓库。跟代码平台无关,想怎么玩就怎么玩。。。我取为 ==>deo
我们现在切换到创建的deo分支,看下内容,发现跟原来一样
我们现在进行随意更改和添加操作。。。
现在我们切换到原来的分支上,看下内容。发现还是和原来一样的(有兴趣可以去了解下git原理,都是基于地址的操作)
发现我们想法是正确的,想把之前的内容复制粘贴到这分支上。。如果你这么做,你就out了,现在我们把deo分支内容提交到仓库,然后进行合并分支的操作。
合并完成并删除分支后,我们在看下我们原来分支里的test文件。
六.文件冲突
我们现在人为的制作一个冲突测试。
在代码托管平台,我们test文件删除几行,在本地,不进行拉取,对同一个文件进行修改,并推送给服务器
点解决,对比冲突文件。进行手动解决。
左边为服务器,内容,我们发现第六行,添加和123645,本地是文字。。。我们进行手动更改
然后保存,标记冲突解决。重新进行提交(commit),在进行push操作。冲突解决。当然还可以用终究办法,强制更新本地,与远程仓库保持一致
git fetch --all && git reset --hard origin/master && git pull