git的使用

2017-12-04  本文已影响0人  生活是什么呢

版本控制工具

什么是版本控制系统?

版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。

常见的版本控制系统有:svn、cvs、git

为什么要有版本控制系统?

  1. 在开发过程中,经常需要对一个文件进行修改甚至删除,但是我们又希望能够保存这个文件的历史记录,如果通过备份,那么管理起来会非常的复杂。
  2. 在多人开发时,如果需要多人合作开发一个页面,那么修改以及合并也会非常的棘手。容易出现冲突。

版本控制系统分类

本地版本控制系统

本地版本控制系统就是在一台机器上,记录版本的不同变化,保证内容不会丢失

缺点:如果多人开发,每个人都在不同的系统和电脑上开发,没办法协同工作。

[图片上传失败...(image-587c4f-1512371073785)]

集中式版本控制系統

svn/cvs都是集中式的版本控制系统

  1. 需要一个中央服务器来管理代码的的版本和备份
  2. 所有的用户电脑都是从中央服务器获取代码或者是将本地的代码提交到中央服务器
  3. 依赖与网络环境,如果连不上中央服务器,就无法提交和获取代码。
  4. 如果中央服务器宕机,所有人都无法工作。

[图片上传失败...(image-daf64c-1512371073786)]

分布式版本控制系统

git是分布式的版本控制系统。

  1. 需要一台服务器作为代码仓库
  2. 每个用户电脑都是一个服务器,并且和代码仓库是镜像的,用户修改和获取代码都是提交到自己的服务器当中。
  3. 不需要网络就可以进行工作。
  4. 当连接网络时,用户可以选择将自己的服务器与代码仓库进行同步。

[图片上传失败...(image-a693a2-1512371073786)]

git

git介绍

Git是一款免费、开源的分布式 版本控制系统 ,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

git安装

下载地址

安装很简单,一直下一步即可。在任意的目录下右键,能够出现下图,表示安装成功了。

[图片上传失败...(image-199cb3-1512371073786)]

git是用法方式主要有两种,

bash是linux系统的命令,因此学习git前,我们先学习一下bash

基本方法

  1. 初始化git仓库git init
  2. 查看当前git仓库的状态git status
  3. 将文件添加到git的暂存区git add 文件名
  4. 将文件由暂存区提交到仓库区git commit -m '提交说明'
  5. 查看提交日子git log
# 初始化git仓库,会在当前目录生成一个隐藏文件夹 .git  不要去修改这个文件夹下的任意东西。
git init

# 查看git的状态 ,如果此时新建一个文件,那么这个文件是没有被追踪的,说白了git还没有管理这个新建的文件
git status 

# 让git管理这个新建的文件
git add index.html

# 让文件由暂存区提交到仓库区。此时文件才真正的被git管理了。
# 
# 如果提交日志乱码,右键-->options-->Text-->将编码改成utf-8

git commit -m '第一次提交'

# 查看提交日志
git log

配置邮箱和用户名

如果第一次使用git,会要求设置用户名和邮箱

# git config  user.name 你的目标用户名
# git config  user.email 你的目标邮箱名
# 这种配置方式只有在当前仓库生效
git config user.name hcc
git config user.email flycc@163.com

# 可以使用--global参数,配置全局的用户名和邮箱,这样别的git仓库就不需要重新配置了。
# 如果同时配置了局部的和全局的,那么局部的用户名和邮箱将会生效。
git config  --global user.name hucc
git config  --global user.email 111111@qq.com

# 查看配置信息
git config --list

git的工作原理

[图片上传失败...(image-4043ec-1512371073786)]

git命令详解

git add(重点)

git checkout 文件名

git commit(重点)

git status

git log

git reset

git忽视文件

在仓库中,有些文件是不想被git管理的,比如数据的配置密码、写代码的一些思路等。git可以通过配置从而达到忽视掉一些文件,这样这些文件就可以不用提交了。

# 忽视idea.txt文件
idea.txt

# 忽视.gitignore文件
.gitignore

# 忽视css下的index.js文件
css/index.js

# 忽视css下的所有的js文件
css/*.js

# 忽视css下的所有文件
css/*.*
# 忽视css文件夹
css

git分支操作

分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。

如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!

[图片上传失败...(image-d7e3f9-1512371073786)]

为什么要有分支?

分支操作的命令

创建分支

查看分支

切换分支

创建并切换分支

删除分支

合并分支

git分支的工作原理

[图片上传失败...(image-8cc4b6-1512371073786)]

git合并冲突

远程仓库

所有的程序员都可以通过远程仓库来进行版本的共享,达到所有人的代码一致的效果。

远程仓库相关的命令

git push

git pull

git clone

git remote

每次push和pull操作都需要带上远程仓库的地址,非常的麻烦,我们可以给仓库地址设置一个别名

github

git与github没有直接的关系。

github官网

开源中国-git

1. gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。
2. github免费,代码所有人都能看到,但是只有你自己能修改。付费的可以隐藏。

在github上创建一个项目,获取到仓库的地址。然后就可以将本地的代码推送到远程的服务器上。

SSH免密码登陆

每次push代码,都需要输入用户名跟密码,非常的麻烦。因此我们可以配置一个SSH免密码登陆。

SSH免密码登录配置

使用github pages搭建博客

GitHub Pages 本用于介绍托管在 GitHub 的项目, 不过,由于他的空间免费稳定,用来做搭建一个博客再好不过了。

缺点:只能放静态页面,也就说github pages只能解析html、css、js,无法解析后端语言。

[用户名.github.io] 将来访问路径

博客搭建步骤:

  1. 在本地工作目录使用git初始化 git init
  2. 创建自己的博客项目
  3. 将创建好的博客添加到暂存区 git add [文件路径]
  4. 本地提交: git commit -m "第一个博客"
  5. 在github上创建一个项目,项目名用户名.github.io 固定的
  6. 提交到github:git push github仓库地址 master
  7. 查看github中对应的仓库中,是不是提交到了
  8. 访问:用户名.github.io

hexo创建博客(了解)

npm,node这些命令是在windows环境下运行的,需要在cmd中敲

安装步骤

npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
npm install -g hexo

hexo -v  # 查看hexo的版本信息
# 新建一个目录  blog
hexo init  # 初始化
hexo generate   # 生成静态页面    
hexo g          # 生成静态页面(简写)
hexo server   # 启动服务
hexo s        # 简写
http://localhost:4000/  # 通过这个地址就可以访问了

hexo常见命令

hexo中文文档

博客格式

---
title: 我的第一篇博客//(注意冒号后面有一个空格不能丢。)
date: 2017-10-28 01:12:29 //指定博客的日期
tags: 
  - 学习
  - 随笔
  - 心情
categories: 
  - javascript
---
# 我是大标题
这后面的内容就跟普通的markdown文件没什么区别
  

发布配置

安装hexo的部署工具npm install hexo-deployer-git --save

修改_config.yml文件

# Site
title: 网站标题
subtitle: 子标题
description: 无
author: HUCC
language: zh-CN
timezone:

# 发布配置
deploy:
  type: git
  repo: github仓库地址
  branch: master

使用hexo d发布博客。

上一篇 下一篇

猜你喜欢

热点阅读