0.Git与GitHub的区别
git与github是当代软件开发中最常用的软件版本管理工具之一。他们之间名字相似,在功能上也有相似之处,但是在实际应用中,他们要起到的作用是不同的。
(1)git是一个需要下载安装的软件,它运行在每一位软件开发人员自己的电脑上。
(2)github是一个网站,该网站已被微软收购。
(3)git是一个本地软件版本管理工具,它的仓储是建立在本地电脑上的,所以它只能做单人开发时的版本管理
(4)如果团队开发,并且要做软件版本管理,只有git就力不从心了,因为我们需要团队共享同1个仓储,所以就需要一个共享的仓储服务器。github就是起到了这样一个共享的、唯一的、能实现版本控制的、具有服务器性质的远程仓储。
总之一句话,git必须与github搭配使用。当然也有github的替代平台,比如码云:https://gitee.com/,码云提供了与github完全相同的功能以外,还有自己的特色功能,重点它是国内的服务器,我们用起来速度快。再多说一句,特朗普拉黑华为的时候,github也暂停了对华为的服务。
1、下载安装Git
这个其实没什么好说的,百度git官网,下载与你电脑操作系统匹配的版本,下载之。然后一路next傻瓜安装就完事了。
唯一需要说明的是在这一步,一定要选择:Use Git from Git Bash only。如下图。由于版本不同,可能选项不太一样,但大致都是如此,选择bash就ok了。
安装完后,只要在你电脑的任何一个目录下拉右键,看到有如下图的2个菜单选项就可以了。
2、初始化项目
在项目目录下拉右键,选择“Git bash here”选项,进入到Git命令行工具窗口。然后输入命令
git init
此命令将当前目录变成一个Git可以管理的仓储。执行完命令后,你在当前目录下就能看到多了一个名字叫做“.git”的文件夹。注意,这个文件夹默认是隐藏的,你需要打开隐藏文件才能看到。
如下图所示:
3、配置当前git用户信息
git config --global user.name "LaoLi" //配置用户名(全局配置) git config --global user.email "[email protected]" //配置电子邮箱(全局配置)
初次使用git,这两项是必须配置的。
4、查看配置信息
如果日后想查看git的配置信息,可以使用以下命令
git config –local -l //查看仓库级的 config,命令: git config –global -l //查看全局级的 config,命令: git config –system -l //查看系统级的 config,命令: git config -l //查看当前生效的配置, 命令:
5、把代码提交到仓储的工作区
git add 文件名 //把单个文件提交到git工作区
工作区并不是真正存放代码的仓库,我们可以把工作区看做是代码的暂存区。上面的命令是把1个文件提交到工作区,如果要提交的项目很多,那么一个一个的提交会非常麻烦,那么可以使用下面的代码,一次性把当前项目的所有修改的文件,统一提交到工作区。
git add ./
注意,add命令后面,不管是文件名还是 ./,都不需要用引号包住。
6、查看git管理的项目文件状态。
git status
7、把代码提交到仓储的版本库
仓储区才是项目文件真正的家
git commit -m "这是本次提交到仓储的代码说明"
这个命令有2个特点:
1.git会一次性的把工作区中所有的文件,全部提交到仓储中。
2.必须有-m的说明,-m是指令参数,它的值是为了之后项目管理中,便于查询此次提交的内容是什么。
有的时候,我们觉得每次代码修改后,都需要先提交到工作区,然后才能commit到仓储中,太麻烦了。我想直接提交到仓储中。那么你可以使用以下命令
git commit --all -m "这一次是把修改的代码文件直接提交到仓储的版本库"
"--all"是参数,注意,是2个“-”,并且-m说明也不能少
8、查看仓储提交日志
git log
这个命令可以查看仓储的版本库中所有的版本提交历史的日志。它将以详细的的方式来显示,如下图所示。其中红色框住的是版本id号。
当日志很多的时候,这种方式并不适合我们查看,所以我们需要一种精简的日志查看方式。命令如下
git log --oneline
运行效果如下图所示:
我们看到的结果,不仅信息量精简了,连版本id都只取了版本号的前7位,但是这其实已经保证绝对不会重复了。所以后边版本回退的时候,使用的版本号就是这个精简版的版本号。
9、版本回退
git reset --hard Head~0 // 回退到0号日志的版本
这里的Head~0, 0其实就是一个日志的索引,你可以使用1,2,3.。。。任意正整数,来代表你要回退到的版本号。0是离当前版本最近的上一个版本。
当git管理的项目版本非常多的时候,这么使用索引来回退是非常不方便的,我们可能更希望使用版本的id号来回退。那么可以使用如下命令:
git reset --hard 版本号
这里说明下什么是版本号,这个号是你在commit的时候,由git自动给你你此次提交的版本生成的唯一编号,完整的版本号非常长,这里reset命令使用的版本号是精简的id号,它就是我们使用git log --oneline时,看到的版本号。
这里有个问题,就是如果我记不住项目的版本号,或者由于种种原因已经看不到某1个版本号,那么可以使用下面的命令,来查看所有的版本号。
git reflog
这个命令实际看到的是所有对版本切换的操作记录。这里就有版本号。
10、创建子分支
首先我们要知道什么是分支。我们启动运行git的时候,默认的是主分支,也就是master分支。
创建子分支的命令如下:
git branch 分支名
这里分支名可以是任意字符串。比如:git branch dev。
我们可以通过下面的命令来查看当前所有的分支
git branch
11、切换分支
当我们的本地仓储有多个分支之时,可以在不同的分支之间切换。命令如下:
git checkout 分支名
12、合并分支
项目开发到一定程序,需要把其他分支的代码合并到主分支。
合并分支时,首先要回到master分支。
git checkout master
然后才能把其他子分支合并过来,比如我们合并dev分支提交的代码。
git merge dev
13、删除分支
删除分支时要注意:
1.master分支,也就是主分支是不能删除的。
2.必须先回到master分支,才能删除其他子分支。
删除子分支命令如下:
git branck -d 分支名
14、GitHub注册
打开GitHub官网:https://github.com/,默认就是注册的UI界面。如果不是,你也可以点击左上角的 "sign up" 注册。
15、登录GitHub
注册完成后是默认为登录状态的。如果没有,你也可以点击第14步,所示图片的右上角“sign in”来进行登录。登录UI界面如下:
登录完成后进入账号主界面,如下:
16、创建GitHub仓储。
我们把GitHub上创建的仓储叫远程仓储。创建仓储的操作非常简单。操作如图所示:
然后你会看到如下界面
填写完了,点击“Create repository”就创建了仓储。你会看到类似下面的界面
这里最关键的就是记下这个仓储的URL,这个URL将作为我们日后通过Git把本地代码上传到GitHub时的URL。
当然这个地址你不需要去记,你可以随时登录自己的GitHub账号,然后通过上面的操作来查看。
到这里,我们GitHub上的操作就暂时告一段落了。接下来,就是如何通过Git把代码上传到GitHub的指定仓储,或者把指定仓储中的代码下拉到本地。
17、通过Git把本地代码上传到GitHub指定仓储
首先,你需要通过第16步中的操作,记下GitHub对应仓储的URL。
然后,打开Git本地项目的bash窗口,在窗口中输入如下命令:
git push github远程仓储的URL master
这个命令的关键词是push,它是上传代码的命令。该命令的最后master,是分支的名字,这里是主分支名字,表示我们把本地的代码上传到GitHub的仓储的master分支。这里的潜台词就是,GitHub也是有分支这1概念的,而且也跟本地Git的分支相照应。
当你第一次上传代码的时候,git会弹出1个类似于登录的对话框,让我们输入远程仓储对应的账号和密码。这很好理解,总不能随便是个人就能上传代码吧。
恕我不能截图,因为只要登录一次,本地git就会记录下来这个账号密码,之后再push的时候就不用反复输入了。
18、配置push命令的地址
如果每次push的时候,都要写仓储的URL,将是一件非常麻烦的事情。我们可以通过配置,在本地记录下来这个地址,然后给它起个别名,之后再用到这个地址的时候,我们只需要使用别名就可以了。配置的命令是:
git remote add [别名] 仓储URL
例如下图,我就给远程仓储的URL起了个别名AsLifeProj
实际上,这个命令最终是往.git目录下的config文件里写下了如下一些信息。
这个文件是纯文本文件,用记事本打开就可以看到源码。
这个配置了以后,我们再次push代码,就可以使用这个别名了,例如:
git push AsLifeProj master
19、把GitHub仓储中的项目代码下拉到本地
下拉也就是下载的意思,或者叫同步也行。这个操作使用的命令是pull,它的用法非常类似于push命令,格式如下:
git pull [远程仓储URL] [分支名]
如果你有上一步的配置别名,pull命令的远程仓储URL也可以使用别名。