Git简易教程

Git简易教程

最近,工作中的用的版本控制工具由CC切换成了Git,但由于没有系统的学习过Git的操作,导致在使用Git的过程中产生了很多问题,已经在一定程度上影响了工作效率,因此觉得有必要花点时间学习下Git的基本操作,以解决日常开发时遇到的一些问题。

这篇博客主要记录下自己学到的在当前工作中能用到的一些操作,以巩固所学,如有缺漏错误,还望指正。

学习内容主要来自廖雪峰老师的Git教程和stormzhang的《从0开始学习GitHub》。

Git简介

在学习Git的操作之前,我任务必须要先了解什么是Git,否则对于后面本地版本的一些操作会很难理解。

Git是什么?

Git是目前世界上最先进的分布式版本控制系统。

那么分布式版本控制系统和集中式版本控制系统到底有什么区别?

首先,分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

所以理论上来讲,Git是可以没有“中央服务器”的,但在实际工作中我们仍然会有一个“中央服务器”,这个“中央服务器”的作用仅仅是方便“交换”大家的修改,没有它其实也是一样能工作的,只是交换修改会不太方便。

工作区和暂存区

Git和其他版本控制工具如SVN的一个不同之处就是有暂存区的概念。

工作区(Working Directory)

就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:
工作区

版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
版本库

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

简单的来讲,我们一般开发时,是在工作区中进行修改;开发完后使用add命令,就是将工作区的内容保存到暂存区(stage);再使用commit命令,就是将暂存区中的内容提交到本地的版本库中。

在工作中,我发现目前并没有把本地版本库充分利用起来,主要是因为对Git的分布式管理暂存区的概念理解不够。

Git的基本操作

下面模拟下在本地进行代码管理时一般的开发流程:
1、将需要进行代码管理的目录初始化为Git可以管理的仓库

$ git init
Initialized empty Git repository in F:/workspace/learngit/.git/

2、创建一个文件readme.txt
3、将readme.txt添加到暂存区

$ git add readme.txt

此时我们可以使用git status查看下当前版本库的状态:

$ git status
On branch master

No commits yet

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

        new file:   readme.txt

看到提示有一个文件没有 commit
4、提交readme.txt,使用带-mcommit命令可以直接在后面加上本次提交的说明。

$ git commit -m "first commit"
[master (root-commit) bfc7583] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 readme.txt

这样,在本地的第一次提交就完成了。

添加文件到Git仓库,分两步:
使用命令git add <file>,注意,可反复多次使用,添加多个文件;
使用命令git commit -m <message>,完成。

版本回退

当然,开发的过程不会总是这么一帆风顺的,如果我们发现提交了错误的代码,想回到之前的版本应该怎么办?

首先我对我的readme.txt文件连续做了两次修改并上传版本库的操作,然后可以看到现在的版本记录是这样的:

$ git log
commit 3d73d796cee69de296ea0005b4cb0b9c42f74070 (HEAD -> master)
Author: miraclegu <guhao032336@163.com>
Date:   Sat Jul 14 18:26:58 2018 +0800

    third commit

commit 0bc03a7edd80dd7c04602ca0a7f8f4b60f929dc9
Author: miraclegu <guhao032336@163.com>
Date:   Sat Jul 14 18:25:57 2018 +0800

    second commit

commit bfc7583377998e6a53f9ee1be60dc80f18be743b
Author: miraclegu <guhao032336@163.com>
Date:   Sat Jul 14 18:14:23 2018 +0800

    first commit

突然我们发现第三次修改是不需要的,我们希望把版本回退到上个版本,此时我们可以使用git reset命令:

$ git reset --hard HEAD^
HEAD is now at 0bc03a7 second commit

这里HEAD表示当前版本,^表示上一版本,当然你也可以用^^表示上上个版本,但如果你想回到第100次提交之前,这个操作显然不太好用,反正我觉得复制一百次^是个很糟糕的操作,这是你可以找到你要回退的版本号,根据版本号来回退到指定的版本号:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值