Github简易入门教程(1)

标签: Github
15人阅读 评论(0) 收藏 举报

Github是一款非常受欢迎的分布式版本控制系统,用于管理文件的修改,而不是文件。本教程的内容是根据廖雪峰老师的教程总结简化而来,使用的系统是ubuntu16.04。
地址:[https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000]

创建工作区

工作区是用于存放文件的一个仓库,英文名为repository,该仓库内的所有文件都会被Git管理起来,文件的变动也都会被Git记录下来。
想要创建工作区,需要执行一下几个步骤:

1.创建一个空目录;
2.将该目录初始化为Git可以管理的工作区。

    $ mkdir learngit
    $ cd learngit
    $ git init  

第一行命令用于生成一个空的目录,第二行命令用于进入到该目录中,第三行命令用于讲该目录初始化为工作区,并生成一个名为.git的目录,该目录一般是隐藏的,使用 ls -ah 可以查看。
初始化成功之后,会显示一下提示:

    Initialized empty Git reposibatory in /(目录)/learngit/.git/

注意:不要手动修改.git目录中的文件,以免破坏Git仓库。

在有了“仓库”之后,我们便可以把需要进行管理的文件移入工作区中,这里也就是learngit目录下。

注意:在该目录之外的文件无法使用Git进行管理!

文件变动

1.提交
创建一个txt文件,并将其移动至版本库中。例如现在编写一个 readme.txt 文件,内容如下:

    Git is a version control system.
    Git is free software.

完成添加需要两个步骤:
(1)将文件添加到暂存区中。当存在多个需要提交的文件时,可以多次使用该命令;
(2)将暂存区内所有的文件,正式提交到版本库中。

    $ git add filename
    $ git commit -m "备注"

**注意:为了方便阅读,请务必不能省略 -m "备注" ,以添加该文件的备注。××

对于add和commit的理解可以参考下图:

使用git init时,目录被设置为工作空间,其中包括工作区以及版本库,而.git文件夹就是这个版本库,版本库内有两块区域,其中一块是暂存区,add命令则是将文件从工作区移入暂存区中,另一块是分支,commit命令则将暂存区中所有的文件移入到分支中。

注意:commit只会提交add后的文件,即暂存区内的文件,因此每次对文件修改后,必须使用add命令,才能保证修改能够被保存。

2.查看状态

    $ git status

使用该命令,可以查看文件修改情况,有无修改情况对应的显示情况是不同的。
当存在修改时,使用命令:

    $ git diff

可以详细查看哪个文件发生了变动以及它的变动情况。

注意:修改文件后的提交步骤同样分为两步,add和commit

3.版本切换
当一个文件多次被修改并提交后,每次提交的文件都可以看做时该文件的一个版本,这些版本都会被Git保留,因此我们可以选择这些版本中的任意一个,作为当前的版本。
所有版本的查看命令为:

    $ git log

显示的内容时由近及远所有的提交日志,以原教程中的日志为例:

    $ git log
    commit 3628164fb26d48395383f8f31179f24e0882e1e0
    Author: Michael Liao <askxuefeng@gmail.com>
    Date:   Tue Aug 20 15:11:49 2013 +0800

        append GPL

    commit ea34578d5496d7dd233c827ed32a8cd576c5ee85
    Author: Michael Liao <askxuefeng@gmail.com>
    Date:   Tue Aug 20 14:53:12 2013 +0800

        add distributed

    commit cb926e7ea50ad11b8f9e909c05226233bf755030
    Author: Michael Liao <askxuefeng@gmail.com>
    Date:   Mon Aug 19 17:51:55 2013 +0800

        wrote a readme file

可以看出,该命令执行后,会显示日志的版本号(commit ID),作者,日期,以及文件名。要实现文件的切换,需要利用commit ID,命令格式如下:

    $ git reset --hard ID

其中ID表示commit ID,一般情况下该ID不需要写全。

注意:当无法找回一些文件时,使用命令:git reflog查看命令记录,可以找到所有文件的commit ID。

使用上述命令,可以在文件版本中任意切换,而使用以下命令可以完成快速回退的任务:

    $ git reset --hard HEAD^

其中,^的个数表示回退次数。

4.撤销修改
撤销修改有以下几种情况:
(1)需要修改工作区某个文件的内容:
此时使用命令:

    $ git checkout -- filename

使用后,工作区的文件将会撤销为最后一次git add或者git commit时的状态。

(2)需要修改暂存区某个文件的内容:
此时使用命令:

    $ git reset HEAD filename

使用后,暂存区内的文件将会被回退到工作区中,在工作区中执行第一种情况的命令,便可以撤销修改的内容。

注意:可以通过手动修改并添加到暂存区的方式,无法覆盖先前add的版本,因此有些错误需要进行撤销。

*5.删除文件
想要删除版本库中的文件,包括两个步骤:
(1)删除文件;
(2)提交日志。
命令如下:

    $ git rm filename
    $ git commit -m "备注"

根据上面的命令可以知道,添加和删除命令都需要进行commit操作。

若不小心误删除了某些文件,需要重新恢复时,直接使用以下命令来恢复该文件:

    $ git checkout -- filename

由此可知,checkout命令是将版本库中的文件恢复到工作区中,因此可用来恢复删除以及撤销操作。

注意:使用checkout恢复文件后,文件只能恢复到最近一次add或者commit的版本,最新的修改将无法恢复。

查看评论

入门级:GitHub和Git超超超详细使用教程!

GitHub和Git入门 考虑到大家以前可能对版本控制工具和Linux命令行工具都不了解,我写了一个简单的博客来让大家学会入门使用方法。 GitHub的简单使用 第一步 创建GitHub账号...
  • JavaAndroid730
  • JavaAndroid730
  • 2016-12-08 19:05:58
  • 62759

easyNeurons 神经网络入门教程

To create and train Supervised Hebbian neural network with easyNeurons do the following: 选择Percept...
  • judyge
  • judyge
  • 2014-12-09 21:55:17
  • 1136

OpenMP简易教程

  • 2012年09月21日 08:50
  • 902KB
  • 下载

Github使用入门教程(1)

Github是什么? GitHub 是一个面向开源及私有软件项目的托管平台。GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供...
  • u013164931
  • u013164931
  • 2017-06-22 19:39:20
  • 120

fortran简易教程(适合快速入门)

  • 2014年05月10日 16:54
  • 670KB
  • 下载

JavaScript简明教程之快速入门

JavaScript代码可以直接嵌入到网页的任何地方,不过我们通常把它们放到head中 html> head> script> alert('Hello World'); ...
  • GarfieldEr007
  • GarfieldEr007
  • 2017-03-27 19:53:51
  • 611

10分钟搞懂git和github(该教程只适合快速入门)

目录 目录 正文 一 git的安装配置只有初次使用需要配置 用户名和邮件 ssh-keygen -t rsa 添加公钥 二最基础本地git操作若这步看不懂请先看四 三 关联远程github的操作 四...
  • u013497977
  • u013497977
  • 2017-01-09 18:53:26
  • 1931

最简单的开源项目托管GitHub入门教程

方法/步骤1 在GitHub新建托管项目 1 要托管到github,那你就应该要有一个属于你自己的github帐号,所以你应该先到github.com注册 ...
  • qq_37622325
  • qq_37622325
  • 2017-04-17 18:00:33
  • 140

Flask简易入门教程 一、小表砸helloworld,跑起来哟

用了很多框架和语言,最后发现还是Python和Flask比较灵活。做了这么多年的web开发,终于找到了真爱。废话不多说,写这个为了记录下来自己的一些心得体会,先是按照mega大神的教程来翻的。后面会加...
  • alvine008
  • alvine008
  • 2015-01-05 16:22:45
  • 33451

ubuntu16.04之GitHub入门教程

什么是 Github? github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。 Github 由Chris Wans...
  • young951023
  • young951023
  • 2018-01-29 22:39:19
  • 97
    个人资料
    等级:
    访问量: 15
    积分: 11
    排名: 234万+
    文章分类
    文章存档