今天要讲的内容:项目管理和工具

Git:版本控制系统

Less:动态的css语言,提高编写CSS的效率

Gulp:项目自动构建工具,对html,css,js,image进行压缩,合并等操作。

一.什么是git

1.Git是什么

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

CSV,SVN。

疑问:

分布式是什么意思?

版本控制是什么东西?

2.为什么需要Git

所以:版本控制可以帮助我们实现两件事情

l  自动记录每次的修改,并且可以方便的切换到任一版本

l  可以完成多人协作开发

3.Git和GitHub有何区别

Git是一款免费开源的分布式版本控制系统 --- 工具,就是一个软件

Github是用Git做版本控制的代码托管平台 --- 平台  就是一个网站

二.快速入门

1.安装

下载的是windows下面的安装。

最简单的就是 全部使用 默认值。

安装完成之后,可以在任意目录,点击右键,可以看到

2.使用

典型流程:

l  初始化一个Git仓库(git init)

l  设置用户名和邮箱

l  添加文件到仓库(git add 文件名1 文件名2 )

l  提交 (git commit -m 说明文字)

l  查看版本 (git log)

l  回退 (git reset --hard HEAD^/commit_id)

先建一个目录,作为项目目录。

(1).初始化一个git仓库

查看刚才的目录,如下:

注意,这个.git目录是隐藏的文件夹,需要设置显示隐藏的内容,才可以看见。

我们不要在这目录中进行任何的操作。

(2).设置用户名和邮箱

必须要设置,否则后续的一些操作将无法完成。

(3).添加文件到仓库

这里的文件,就是我们的项目文件。如index.html,test.css等。

主要是是文本类型的文件,包括txt、html、css、js等。

Text/html

Text/CSS

Text/JavaScript

对应的图片,word就不是。

添加如下:

注意:我们在使用命令的时候,经常没有提示。如果有提示,基本都是错误。

Linux中的哲学:没有消息就是好消息。

(4).提交

将刚刚添加到仓库的 所有文件,提交成第一个版本。

Git Commit  -m 说明

说明不能少,如果没有写,则无法commit。

(5).查看版本情况

使用git log 查看版本情况

后续的重复3~5这三个过程。

比如,我又新建了一个base.css文件

然后使用git add base.css,添加到仓库

接下来,就可以使用git commit来提交

(6).回退

我们可以回退到任何一个版本。

git reset commit_id

比如,我又后悔了,需要回到之前的那个未来的版本,可以使用git reset commit_id

三. Git基本概念及原理

1.基本概念

l  工作区

l  版本库

l  暂存区

l  分支

当前项目目录,以.git目录作为分界线,一分为二。.git是版本库,也就是Git仓库。

.git之外所有的内容都是工作区。

工作区:其实就是我们的项目目录及文件。我们进行常规开发的内容。

版本库:.git目录,是Git工具用于管理版本的这个目录,千万不要动。

对于版本库,也就是.git 目录所控制的部分,又有两个非常重要东西:

l  暂存区

l  master分支

回顾刚才的操作,需要将一个文件添加到版本库中的某个版本,做了两步操作:

第一,使用git add

第二,使用git commit

实际上,在使用Git的时候,不能将文件一步添加到版本库的某一个分支。必须要分两步,

第一步,将文件从工作区添加到 版本库中的暂存区。

第二步,将暂存区中的所有内容一次性提交到版本库的当前分支。

所以,在刚才的操作中,使用git add,其实就是将文件,如index.html添加到 暂存区中。

然后 使用git commit 将暂存区中的所有内容 提交给 master分支。

打一个比方。

2.原理剖析

核心:理解暂存区,以及具体的执行过程。

当前工作区中的两个文件,都已经添加到版本库中的master分支。

此时,暂存区是空的,然后尝试使用git commit来提交,结果如下:

在工作区中新建一个test.js文件,

此时,test.js和版本库没有任何关联,不在版本库中的任何分支上。

如图:

如果,此时使用git commit命令尝试提交,会出现如下情况:

接下来,将test.js加入到 暂存区。

在示意图中,如下:

此时,暂存区中已经有内容了,所以可以使用git commit进行提交了。

一旦将暂存区中的内容commit到master中,那么暂存区就会清空。

再次进行 commit操作,不会有任何提交的。

四.Git基本操作

主要掌握一些几个命令

l  git config

l  git init

l  git add

l  git commit

l  git status

l  git reset

主要,这些命令都是基于单人开发的版本控制。

1.git config

获取或者设置git 的配置项。

有哪些呢?

git config --list

获取具体的某一个配置。

Git config 配置项名

如:

2.git init

Init是initial的简写,初始化的意思。

我们要使用Git,第一步就是需要初始化一个版本仓库,使用git init即可。

在当前项目目录下,新建一个版本库时,会自动创建一个.git的隐藏目录。

疑问:我是先建版本库,还是先建项目的目录结构呢?

好的做法,就是先建 版本库。然后再进行项目开发。

.git目录用git用来控制版本的,不要在这个目录中做任何操作。

开发的时候,将其隐藏即可。

3.git add

作用:将工作区中的 文件 添加到 暂存区中。

添加的时候,可以一次性添加多个,每一个直接使用空格隔开即可。

如果在一个文件夹下,有多个文件,如下:

可以直接是文件夹名,一次性添加,如下:

当然,在实际开发的时候,可能在后续的开发过程中,新增了一些文件,最好是单独添加。

4.git commit

作用:将 暂存区中的 内容,一次性添加到 mater分支。

使用的时候,需要注意:

一定要添加说明,有两种方式:

git commit -m 说明文字 (提倡)

l  git commit 要结合 vi编辑器

如果直接写上 git commit ,那么它会弹出vi编辑器的界面,

Vi编辑器的模式:

编辑模式,按i进入,

命令模式,按esc

在命令模式下,先输入 : 然后是命令,比如要保存并退出。w保存,q退出。

: wq 就可以保存退出。

5.git status

查看状态

任何时候都可以查看 版本库的状态。

6.git reset

Reset,重置。

作用,回退到指定的版本。

基本用法

需要指定两个东西:

l  回退到哪个版本,使用commit_id来指定,或者 HEAD^、HEAD^^、HEAD^^^、HEAD~n

l  使用哪种方式,硬回退 --hard,软回退。--soft

为了测试效果,使用硬回退。

Git reset --hard commit_id

查看当前版本

现在,向会退到 第二个版本。找到它的commit_id,如下:

65c7825f56ba6f3e8de7d075b14c42e51d884787

此时,就回到了第二个版本的初始状态。

要注意,此时第三和第四个版本的文件,虽然已经不在工作区,但是它还保存在版本库中。所以可以随时再回退。

比如,我需要回到第三个版本。

注意,这个是相当于回到当前版本的未来版本。使用git
log 只能查看当前版本之前的所有版本。

如何获取所有版本的commit_id呢?

针对这个需求,需要分两种情况:

l  第一,git bash窗口没有关闭,使用前面查过的commit_id

l  第二,git bash窗口关闭。比如,昨天做的操作,今天后悔了。 使用 git reflog

如果是第一种情况,直接找

012ae56a05e5e9d7ddcb2b97a62e68a9820b2abf

使用

直接使用 git reset 命令即可。

五.协同开发

1.多人协作原理

2.多人协作实现

基本流程如下:

l  创建一个git裸服务器 (git init -bare)

l  从裸服务器将版本库克隆至本地(git clone )

l  本地常规操作

l  推送版本至服务器
(git remote + 
git push origin master)

l  从远程服务器拉取版本(git pull)

最好的方式,就是有一个服务器(linux系统下搭建的服务器)

先在windows上面模拟协同开发

(1).创建git裸服务器

选定一个目录,

使用git init --bare

创建如下:

repository
:仓库

此时,我们的裸服务器已经创建完毕。

注意,和使用git init相比,有区别

相同点:生成的文件是相同的,除了.git目录本身。

不同点:init会生成一个.git目录,而git init --bare不会。

没有.git目录,也就意味着它不能在当前这个目录实现版本控制。

所谓的裸服务器,就是指这里只有版本库的内容,没有工作区。

所以,对于git服务器而言,所要做就是
创建好 版本库。没有其他的。

(2).从裸服务器将版本库克隆至本地

甲需要开始开发了,一开始需要将服务器上的版本库
克隆至自己的电脑。

git clone 地址

在windows下的本机上,地址直接使用
绝对目录即可。

进入git-server目录,发现已经有了.git目录,

此处,我们就不需要在本地再进行 git init的操作了。

此时,有一个说法:

创建一个版本库,至少有两种方式:

l  在本地使用 git init创建

l  在服务器上 clone 一个

对于甲而已,现在就可以 完成常规的开发。

现在所有的版本控制都是在本地进行的。

注意,如下错误:

对于其他程序员,完全可以同步这个操作的。

乙程序员来了,需要开始工作了。

有了版本库,那么乙就可以在这个目录下,进行常规开发以及本地的版本管理

.........

长时间的开发,自己本地的版本控制

........

(3).拉取和推送版本

甲将自己的最新的版本,推送至git服务器。

服务器在哪儿?

git remote

怎么推送呢?

git push origin master

此时,甲已经将其最新的版本库 推送至 git服务器。

此时,乙程序员,并不能够看到甲的工作内容。

实际上,其他同事,需要从git服务器上,拉取最新的内容才可以。

有一个网站:stackoverflow

基本上我们在开发时遇到的90%以上的,都可以在上面找到准确的答案。

http://stackoverflow.com/

在上述的几个流程中,

前面三个流程,如下:

创建一个git裸服务器
(git init --bare)

从裸服务器将版本库克隆至本地(git clone

本地常规操作

是没有什么问题的。

其中,创建裸服务器不是由开发人员来完成。是项目负责人干的事情。它会给我们一个地址。

做为开发人员,需要 使用 git clone命令从 git服务器
克隆版本库到本地。

然后在本地进行常规的管理。

在开发完一个阶段之后,需要将本地的 版本库 推送到 git服务器。

推送的时候,要注意你的版本是最新的,还是说不说最新的。

如果是最新的,很简单,直接推送  git push origin master

如果不是最新的,需要保证你在推送之前那一刻是最新的,先从服务器拉取最新的--git pull,然后再推送 git push
origin master。

但是,如果是第一次在拉取的时候,可能会出现,拉取失败的错误。加上--allow-unrelated-historeies即可。

为了确保每次推送时没有问题,一般操作就是先拉取后推送。

3.分支

(1).什么是分支

你可以创建一个属于自己的分支,别人看不见,还继续在原来的分支上工作,而你在自己的分支上进行开发,等开发完毕,合并即可。

默认情况下,git中只有一个分支 master。

Branch--分支

在当前分支上的版本控制,如图所示:

(2).分支的基本操作

l  查看当前分支
(git branch)

l  创建分支
(git branch 分支名)

l  切换分支(git checkout 分支名)

l  分支上的常规操作

l  分支的合并
(git branch master + git merge 分支名)

l  分支的删除(git branch -d 分支名)

查看当前分支

注意 *,表示如果有多个分支,当前是在哪个分支上

创建分支

切换分支

接下来,所有的git相关操作都是基于 b1 这个分支的。如

相当于:

查看b1分支的log

查看master分支的log

当在分支上,完成了这些操作。

可以将其合并到master上面去。

合并需要两步:

l  切换到主分支,git checkout master

l  在主分支上,合并其它分支,git merge 分支名

合并之后,相当于

最后,将分支删除掉

git branch -d 分支名

就相当于

六.GitHub

GitHub不是Git

Git是一个版本控制系统,是一个工具。提供了诸多的一些命令,从而完成版本的控制以及协作开发。

GitHub是一个网站,基于Git的,主要的作用就是代码托管。

托管有这么几层含义:

l  将自己平时写的项目保存到GitHub上。

l  可以作为Git服务器来使用。

网址:https://github.com/

第一件事情,就是注册账号。

创建版本库

现在已经有了一个版本库,

我们就可以在当前版本库中,添加文件,添加版本。

可以新建文件

在这个操作中,对应到Git操作,应该有哪几部?

第一,在项目目录下新建了一个文件

第二,将文件使用git add添加到暂存区

第三,使用git commit 提交到版本库的主分支。

作为git服务器来使用。

首先在GitHub上创建一个仓库。

然后,在本地使用 git Clone 将版本库 克隆到本地。

使用git clone命令即可。

然后,在本地进行常规开发,并进行常规的版本控制。

完成之后,需要将最新的版本库,推送到GitHub

首先要找到远程的 git服务器的名称,就是origin

使用push推送之

对于这个过程,重复操作即可。

当然,如果有多个用户同时进行协同开发,就需要注意,在push之前,需要pull一下。

总结:

Git 是什么?

是分布式版本控制系统。

分布式

版本

软件从开发的第一天,到后期的不断更新,其中每一个节点都是一个版本。

可以干什么?

对版本进行管理,便于开发的时候,更好的维护项目。

团队协作开发

常规使用

创建版本库:git init  /  git clone url

在本地git版本库进控制

l  git add

l  git commit

l  git reset

l  git log/git reflog

l  git status

l  git config

l  git branch

如果在gitHub网站上创建分支,是fork

Fork的意思是叉子

作业:

l  先注册GitHub账号。

l  将自己的项目托管到GitHub上。

l  利用GitHub结合Git尝试团队开发。

接下来,就可以
在自己的简历中复制这一行:

熟练使用Git进行项目的版本控制和团队协作开发。

问:在使用Git的时候遇到什么问题没有?

版本冲突。

两种情况:

第一,在推送的时候,自己的当前版本不是最新版本,此时先拉取,再推送。

第二,如果多个程序员在编辑同一个文件,所以需要商量一下,让其中先完成,push,另一个人再拉取,修改,然后在push。

大众化简历:

精通/熟练/了解

HTML5、CSS3、jquery

遵循w3c标准/规范,注重语义化,快速进行web 页面

有良好的编码规范(注释,命名规范)

使用Git对项目进行版本控制以及团队协作开发。

对js有深入的了解,可以使用js来实现各种效果,熟悉oop。

能够使用HTML5、css3、zepto进行web app开发。熟练使用jquery mobile快速进行web app开发。

了解Angularjs

BootStrap

熟悉Node.js

熟练使用Ajax进行异步的交互。

 

定制建立

投其所好。

看着了哪家公司,先看人家的招聘要求。

对号入座

git全部使用步骤的更多相关文章

  1. Git 的安装步骤

    Git 的安装步骤 一.下载Git Git 的官网:https://git-scm.com/ 在 Git 的官网中点击Downloads,进入如下页面: 选择对应的操作系统,以博主为例,点击Windo ...

  2. 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解

    工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...

  3. git代码提交步骤,教程

    代码提交 代码提交一般有五个步骤: 1.查看目前代码的修改状态 2.查看代码修改内容 3.暂存需要提交的文件 4.提交已暂存的文件 5.同步到服务器 1.     查看目前代码的修改状态 提交代码之前 ...

  4. IDEA集成git和使用步骤

    2018年07月20日 11:26:29 完猛 阅读数:3246    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/miwanmeng/artic ...

  5. Linux 下搭建Git 服务器详细步骤

    参考: https://www.cnblogs.com/dee0912/p/5815267.html#_label0 https://blog.csdn.net/carfge/article/deta ...

  6. git代码提交步骤

    常用的步骤: 1)假如本地想关联git仓库,那么先git  init,git remote add origin [git地址] 2)假如是想直接从git仓库拉下来,那么git clone [git地 ...

  7. git-关联远程git仓库详细步骤-2

    1.打开git bash,在控制台中输入以下命令:ssh-keygen -t rsa -C "邮箱地址" 结果: fanxi@AT8350 MINGW64 ~$ ssh-keyge ...

  8. xcode 版本控制推送代码到远程git仓库的步骤

    一 代码推送到远程git仓库 1.在git中建立一个下项目(假设项目名称为->Mygit) 2.在xocde上新建一个测试项目(假设项目名称为GitTest) 3.打开电脑终端: 1)首先利用终 ...

  9. 初始化git远程仓库步骤

    Git global setup git config --global user.name "bingo" git config --global user.email &quo ...

  10. git提交代码步骤

    01:首先git status一下查看当前目录下修改的文件,当然编译生成的文件也在其中,我们只看自己修改的: 02:git add ****** //(文件名) 将上述查找到自己修改的文件添加到git ...

随机推荐

  1. http之head请求(转)

    HTTP请求方法并不是只有GET和POST,只是最常用的.据RFC2616标准(现行的HTTP/1.1)得知,通常有以下8种方法:OPTIONS.GET.HEAD.POST.PUT.DELETE.TR ...

  2. 安装MYSql Windows7下MySQL5.5.20免安装版的配置

    MySQL Windows安装包说明: 1.mysql-5.5.20-win32.msi:Windows 安装包,图形化的下一步下一步的安装. 2.mysql-5.5.20.zip,这个是window ...

  3. thinkphp 3.2 导入第三方类库的两种方式

    第一种

  4. java 错误 classes路径配置错误

    1. 错误显示页 2. 解决步骤 2.1. 查看 root cause 信息 org.springframework.beans.factory.BeanCreationException: Erro ...

  5. UED大全

    http://www.baiduux.com/  百度UFOhttp://ued.sohu.com/  搜狐UEDhttp://ued.taobao.com/  淘宝UEDhttp://www.ued ...

  6. jackson - 生成jason工具-简单示例

    主页: http://jackson.codehaus.org/ https://github.com/FasterXML/jackson 当前jackson分为三部分,需要分别下载: jackson ...

  7. 使用AngularJS的三个重要原因

    入门教程:http://www.ituring.com.cn/minibook/303 : http://angularjs.cn/tag/AngularJS 原因一:Google开发的框架 要知道开 ...

  8. Bootstrap入门(二十四)data属性

    Bootstrap入门(二十四)data属性 你可以仅仅通过 data 属性 API 就能使用所有的 Bootstrap 插件,无需写一行 JavaScript 代码.这是 Bootstrap 中的一 ...

  9. SQL Server事务、隔离级别详解(二十九)

    前言 事务一直以来是我最薄弱的环节,也是我打算重新学习SQL Server的出发点,关于SQL Server中事务将分为几节来进行阐述,Always to review the basics. 事务简 ...

  10. DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱.不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬.(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...).已经上班两天了,公司大部分人还在休假,而我早已上班, ...