zoukankan      html  css  js  c++  java
  • git全部使用步骤

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

    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进行异步的交互。

     

    定制建立

    投其所好。

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

    对号入座

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
  • 原文地址:https://www.cnblogs.com/Eilen/p/6486570.html
Copyright © 2011-2022 走看看