版本管理工具介绍-Git

简介

git首先的一个作用就是备份文件,备份你暂时写不完的代码,并且记录每次修改的历史,存档每次提交的代码,可将代码恢复成之前的存档状态,还可将我们托管的文件在多端进行同步,就是说我们在公司里将代码提交到相应托管平台后,回到家中用家里的电脑从平台上取出托管的代码继续写。


版本控制工具发展历史图:

版本管理工具介绍-Git


Git下载和安装

windows平台:登录github.com,在首页上下载github客户端,完成后它会自动安装


linux平台(centos):执行yum install git             git --help查看帮助



github注册:

登录官网注册,普通用户可以免费不限制的创建公共仓库,但是可以被其他人看到,想创建不能被人看到的私人仓库每月最低好像四五十快RMB把(官网上有收费标准)。进入注册页面填写用户名,邮箱,密码,完成后点击下一步是让你选择收费模式,可以选择免费,确认后进入个人中心页面,点击"发送确认邮件"按钮,进入自己的注册邮箱确认。完成后就可以在自己下载的github客户端上登录了。



创建新项目:

登录官网后点击"New repository"
版本管理工具介绍-Git

跳转到创建页面,填写你的仓库名(不支持中文)以及描述(支持中文),选择仓库类型public,private是收费的,勾选生成README文件(作用主要是写些对项目的介绍)

版本管理工具介绍-Git

进入仓库页面,点击右边的Clone or download,复制里面的URL,这URL主要使用在linux平台下,通过git clone "url",将项目克隆到本地目录,自己修改后再进行提交

版本管理工具介绍-Git




提交项目

linux环境:
假设已经将项目clone到本地,编辑代码后执行git status命令,若新增了文件,需先执行git add 新文件名(跟踪新文件),再git status检查项目状态,git commit 提交这次修改,它会让你输入对这次修改的描述介绍,不过这提交只是提交到本地不是提交到github,执行git push推送到github,根据提示输入你的github的用户名和密码,提交成功后再次git status检查状态,现在就可以登录到github看到这次提交的内容了


windows下检出项目和提交:

点击上图中的"Open in Desktop",选择项目存放位置就可以在客户端中打开项目进行编辑,客户端中也可以回档,查看历史记录,点击"Uncommitted changes"可以看到修改或新增的文件,并可以添加此次修改的评论描述,点击下面的"Commit to master"提交到本地。还可以新建一个.gitignore文件,忽略一些文件(不会在Uncommitted changes中看到),如一些备份文件

版本管理工具介绍-Git

提交到本地后,可以看到有"Unsynced changes"(未同步的修改),因为没有提交到github

版本管理工具介绍-Git

点击客户端右上角的同步按钮即可同步到github

版本管理工具介绍-Git




代码冲突:

linux平台下解决:
因为一个项目肯定是多人合作完成的,当两个人同时修改了相同部分的代码,先提交的人正常提交,第二个提交的人提交时(git push)就会出问题
版本管理工具介绍-Git
因为你修改的内容之前已经被人修改过了,所以git会让你把别人修改过的代码git pull到本地,你来查看别人修改的代码(而且合并了你修改的代码),看看是保留他写的代码还是保留你写的代码,再提交


windows下解决:

客户端上提交后,它会提示有冲突,你将看到别人修改的代码和你修改的代码,做了取舍之后,再提交



回档:

linux下解决:
执行git log命令查看之前的提交记录,可以看到很多提交记录以及commit对应的ID

版本管理工具介绍-Git

复制某一个Commit  ID,执行git reset --hard  "ID"

"hard"是当前版本的指针,修改了ID就将代码回档到当时的状态


若想撤销修改,执行git reflog,列出当前版本之前的版本号,当前版本ID就是第一个19aed2e

版本管理工具介绍-Git


因此只要执行git reset --hard 0ce6fd2,就回到了回档之前的版本




建立里程碑:

操作步骤:
1. 在github网站上.进入项目首页.
2. 横栏按钮(commits, branches, release等),找到release按钮.
3. 找到按钮:draft a new release,点击进入下一页面.
4. 填入版本号,以及说明信息.
5. 完成后,点击publish release,将软件发布出去.
6. 这样就完成里程碑建立,同时会自动生成zip下载链接.
里程碑 = 稳定版本号.
里程碑的含义是: 一个阶段比较稳定的版本,正式提交发布出去.提供zip下载.



分支开发

分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

接下来就不讲了,发现一个更通俗易懂的学习Git网站:

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

推荐大家看看!