一、Git简介
1.1Git特点:版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。
分布式:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。
1.2Git的安装和配置:
1.安装命令如下:sudoapt-getinstallgit
2.去git官网下载最新版git软件
1.3创建一个版本库:
1.新建一个目录git_test,在git_test目录下创建一个版本库,命令如下:
gitinit
可以看到在git_test目录下创建了一个.git隐藏目录,这就是版本库目录。
1.4版本创建与回退:
1.使用如下两条命令可以创建一个版本:
gitaddcode.txt
gitcommit–m'版本1'
2.使用如下命令可以查看版本记录:
gitlog
3.现在若想回到某一个版本,可以使用如下命令:
gitreset--hardHEAD^
其中HEAD表示当前最新版本,HEAD^表示当前版本的前一个版本,
HEAD^^表示当前版本的前前个版本,也可以使用HEAD~1表示当前版本的前一个版本,
HEAD~100表示当前版本的前100版本。
1.5工作区和暂存区:
1.工作区:电脑中的目录,比如我们的git_test,就是一个工作区。
2.版本库:工作区有一个隐藏目录.git,这个不是工作区,而是git的版本库。
3.暂存区:git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,
还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
1.6向版本库中添加版本:
1.第一步是用gitadd把文件添加进去,实际上就是把文件修改添加到暂存区;
2.第二步是用gitcommit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
1.7使用如下命令查看当前工作树的状态:
gitstatus
1.8Git的工作流程图:
1.9管理修改:
1.git管理的文件的修改,它只会提交暂存区的修改来创建版本。
2.使用gitcheckout--<文件>来丢弃工作区的改动。
3.用命令gitresetHEADfile可以把暂存区的修改撤销掉,重新放回工作区。
1.10分支管理:
1.git把我们之前每次提交的版本串成一条时间线,这条时间线就是一个分支。
截止到目前只有一条时间线,在git里,这个分支叫主分支,即master分支。
2.git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,
以及当前分支的提交点:
3.当我们创建新的分支,例如dev时,git新建了一个指针叫dev,
指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
4.从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,
dev指针往前移动一步,而master指针不变:
5.假如我们在dev上的工作完成了,就可以把dev合并到master上。
git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:
6.git合并分支也很快,就改改指针,工作区内容也不变。
7.分支的操作命令:
查看分支:gitbranch
创建分支:gitbranch<name>
切换分支:gitcheckout<name>
创建+切换分支:gitcheckout-b<name>
合并某分支到当前分支:gitmerge<name>
删除分支:gitbranch-d<name>
二、GitHub的使用
2.1注册github账户,登录后,点击"Newrespository"
2.2在新页面中,输入项目的名称,勾选'readme.md',点击'createrepository':
2.3添加ssh账户:
2.3.1点击账户头像后的下拉三角,选择'settings'
2.3.2点击'SSHandGPGkeys',添加ssh公钥:
2.3.3克隆项目:在浏览器中点击进入github首页,再进入项目仓库的页面:
2.3.4复制Git地址:
2.3.5克隆项目:
gitclone地址
2.3.6上传分支:推送分支,就是把该分支上的所有本地提交推送到远程库,
推送时要指定本地分支,这样,git就会把该分支推送到远程库对应的远程分支上
gitpushorigin分支名称
2.3.7将本地分支跟踪服务器分支:
gitbranch--set-upstream-to=origin/远程分支名称本地分支名称
2.3.8从远程分支拉取代码:
gitpullorgin分支名称
使用上述命令会把远程分支上的代码下载并合并到本地所在分支。
三、工作中使用git:
项目经理:
1.项目经理搭建项目的框架。
2.搭建完项目框架之后,项目经理把项目框架代码放到服务器。
普通员工:
1.在自己的电脑上,生成ssh公钥,然后把公钥给项目经理,项目经理把它添加的服务器上面。
2.项目经理会给每个组员的项目代码的地址,组员把代码下载到自己的电脑上。
3.创建本地的分支dev,在dev分支中进行每天的开发。
4.每一个员工开发完自己的代码之后,都需要将代码发布远程的dev分支上。
Master:用于保存发布的项目代码。V1.0,V2.0
Dev:保存开发过程中的代码。