阅读 92

代码版本控制-git初识&基本操作(一)

这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战

更多文章 前文更新推荐参考: 【Node.js 搭建自动化开发环境】- 基本介绍【工具准备】【开工】【步骤(四)】【模块处理工具(五)】【模块化编程的理解】

本文将会学习 代码版本控制, 主要为git的学习, git 也是主流潮流吧--

一、代码版本控制

我们在项目开发过程中,经常会需要将代码回退到前一天或者其他的某个时间节点,这个时候我们可以针对情况对代码进行删除等操作,但是这种删除的操作一般代价都比较大,成本比较高,这个时候我们就可以对我们的代码进行版本控制,当然我可以手动的在开发发某个功能之后,将代码文件都保存一份,然后需要更改回退的时候再将保存好的代码复原,但是这样手动的代码版本控制比较麻烦,出错几率高。

在这里给大家介绍两个代码版本控制工具:git / svn

二、git 和 svn 的区别

svn 是集中式管理方式,类似于中央集权制,svn 会有一个中央服务器,所有的代码的版本都是管理在中央服务器的,所有开发者都会从中央服务器去选择下载想要的版本的代码,也会将写好的代码进行提交

svn 的缺点也很明显:

  1. 代码版本管理依赖于中央服务器,每个客户端无法在本地进行代码的版本控制
  2. 一旦中央服务器奔溃(宕机)甚至数据泄露或者误删的话,整个项目的代码都没办法找回了

git 是分布式管理方式, 每一台客户端都可以看作一个中央服务器,客户端就可以在本地就进行代码版本管理,为了协同合作和代码保护有时也会需要创建一个远端仓库,因为每个客户端其实都会保留完整的代码版本库,所以安全性大大提升。

三、git 基本操作

我们从官网下载了 git 安装包后进行安装, git 也是依赖于命令行工具来执行任务的,但是安装的时候会自带一个 GUI 这样的可视化界面,市场上也有很多可视化 GIT 操作,例如tortoisegit, 但是一个好的程序员都不使用可视化工具

git 的命令行工具中会使用一些 linux 的操作命令,在这里利用一个小小的情书项目来学习 git

首先我们创建好项目目录之后,先去进行 git 仓库的初始化(创建版本管理)

git init
复制代码

执行完成后会出现如下的命令

Initialized empty Git repository in F:/BK-1811/front-end-project/git/love-letter/.git/
复制代码

初始化了一个空的 git 仓库在 ..../.git/ 也就是说项目目录中的.git 文件夹其实就是这个项目的本地仓库,里面会保存项目的每个版本的代码

然后进行了代码的开发,开发到一定的阶段,准备提交一个版本(提交到本地仓库-> .git)

git add .
复制代码

上面的命令的意思: 将项目目录中的所有的代码提交到缓存区里,接下来执行这样的命令

git status
复制代码

这个命令是查看一个当前的 git 的状态,我们可以看到的是

On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   introduce.md
        new file:   love-letter.md
复制代码

这描述着还没有提交,在缓存区里已经有了一些新文件了

接下来把缓冲区里的文件进行一个提交,提交到本次仓库中(.git),并且做出注释:

git commit -am '在这里写此次提交的注释'
复制代码

注意,这个时候会有一个警告:

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'Administrator@DCR8WCBA96DBJX9.(none)')
复制代码

大家要注意,git 进行版本管理的时候,必须得配置一个用户名和邮箱,这样 git 才能知道操作者是谁,才能运行我们提交

 git config --global user.email "you@example.com"

 git config --global user.name "Your Name"
复制代码

接下来就会出现这样的情况:

[master (root-commit) 8f5a228] 我去休息下,此次提交的只是写好了情书的开头,个人介绍中写个了名字
 2 files changed, 8 insertions(+)
 create mode 100644 introduce.md
 create mode 100644 love-letter.md
复制代码

8f5a228 是此次提交的版本号,显示了此次提交的注释和此次提交的代码的变化

这次提交完成后,我们去抽烟了,抽烟回来后继续开发代码,开发完成后准备吃饭,所以再来一次提交

 git add .

 git commit -am '...'

 [master 74e4f4c] 先去吃饭吧,刚刚写了一句
 2 files changed, 4 insertions(+), 2 deletions(-)
复制代码

接下来我突然想看一下前几次的提交了,所以我们执行:

git log
复制代码
commit 74e4f4c636e7710fa0f878d74a641b2de502e74a (HEAD -> master)
Author: ergouzi <murlin@aliyun.com>
Date:   Fri Sep 14 10:38:38 2018 +0800

    先去吃饭吧,刚刚写了一句
复制代码
commit 8f5a228d55e7d2c1919e9b895c26a30248842fe8
Author: Erioser <983357618@qq.com>
Date:   Fri Sep 14 10:26:27 2018 +0800

    我去休息下,此次提交的只是写好了情书的开头,个人介绍中写个了名字
复制代码

查看历史版本后,我们吃饭了,吃完饭回来继续开发,但是这次开发可能会存在一些问题,我们没有发现,准备再提交一次后回家

到这里为止, git 的基本操作就介绍完了,更多详细的内容请查看学习廖雪峰 GIT 教程

下文更新预告, 跟上节奏

接下来会继续学习 git 的更多功能, 冲鸭!! xdjmm

提高开发效率, 为我们的开发提效赋能!

跟上前进的步伐, 向前加油

加油!! go~

文章分类
前端
文章标签