Git及Github的使用

本文讲述Git的基本概念及本地库基本使用方法等。

以下任何[]在实际输入命令忽略即可,只是起到扩起目标词的作用--

版本控制工具:协同修改、数据备份、版本管理、权限控制、历史记录、分支管理。


Git的基本介绍

  • 是一种采用文件系统快照对的方式,对每个版本的文件信息进行管理的工具,即版本控制工具。SVN则采用增量式管理的方式。

  • 是一种分布式版本控制工具,而SVN则是集中式控制。

    1、分布式版本控制系统没有“中央服务器”,每个人的电脑都是一个完整的版本库,不用联网安全性相对于集中式版本控制系统要高很多。

    2、分布式版本控制系统还拥有强大的分支管理能力,允许开发团队在工作过程中多条生产线同时推进任务,大大提高效率。

  • 对团队外参与开发人员进行权限控制,对其代码进行审核。


Git命令行操作

1.设置签名

分别在命令行中输入以下代码,进行user.name和user.email的设置

git config --global user.name [user.name]

git config --global user.email [user.email]

--global 是系统用户级别,信息保存在:~/.gitconfig 文件中。

可以通过$ cat ~/.gitconfig命令查看。

2.创建本地库

选择合适的地方,创建空目录并进入(可以不按照默认路径)。

$mkdir gitwork
$cd gitwork

可以输入pwd查看当前显示的目录

3.仓库初始化

git init

初始化成功,当前目录下多出了.git目录,不能随意修改或者删除。

可以使用ls -ah查看隐藏的.git

4.状态查看

git status

当前为空库,所以no commits .分支为master.

5.添加文件

1、想要添加文件,得先写一个文件。用vim [filename]写一个.txt文件,关于vim的在此不做过多的探究,退出键为ESC,再输入:wq,文件便创建完成。

2、使用git add [filename]命令,将文件加到暂存区。

可以发现,出现了warning语句。注意:

warning: LF will be replaced by CRLF in app.wxss.

The file will have its original line endings in your working directory.

原因是路径中存在 / 的符号转义问题,false就是不转换符号默认是true,相当于把路径的 / 符号进行转义,这样添加的时候就有问题.解决方法就是输入以下命令,接着按原计划走。

git config --global core.autocrlf false

**添加文件夹->git add .->.代表当前目录所有。

6.提交文件

此时再次输入git status命令,可以查看仓库的状态,以加深对工作区,暂存区和本地库的理解。

一个新的文件被加入到暂存区,就是绿色部分所显示的。将“新建、修改”的文件添加至暂存区

git commit -m "message"[filename]

将暂存区的内容提交至本地库。

7.历史记录

git log

当然,这里作为演示,只有一步行为。在实际的应用过程中,版本更新的频率是很高的,所以为了看着舒适清晰,可以采用以下命令:

git log --pretty=oneline 包含sha1哈希值,指针指向,以及commit内容
git log --oneline 包含一小部分sha1哈希值,指针指向以及commit内容
git reflog 包含一小部分哈希值,HEAD@{移动到当前版本需要的步数}以及commit内容

8.前进后退

在提交了多次修改申请之后,界面变成如下:

  • 后退:git reset --hard HEAD^ 表示后退一步

提示:HEAD is now at f435d69 commit youfirst.txt

git reset --hard HEAD~n 表示后退n步

git reset --hard[index] 基于索引值

  • 前进:只能基于索引值,推荐使用。

前进或者后退,HEAD指针都在随着版本更新,在变化。


reset三个参数的对比

  • --soft:仅仅在本地库中移动HEAD指针。

  • --mixed:在本地库中移动HEAD指针。

    重置暂存区。

  • --hard:在本地库中移动HEAD指针。

    ​ 重置暂存区。

    ​ 重置工作区。


9.删除文件

前提:删除前,文件存在的状态提交到了本地库。

git reset --hard[指针位置]

  • 删除操作已经提交到了本地库:指针位置指向历史记录。
  • 删除操作尚未提交到本地库:指针位置使用HEAD。

10.比较文件差异

1、git diff[filename]:将工作区的文件和暂存区进行比较。

2、git diff[本地库中的历史版本][文件名]工作区本地库中的历史记录比较。

3、不带文件名比较多个文件。

Git及Github的更多相关文章

  1. 简单使用Git和Github来管理自己的代码和读书笔记

    原文链接:http://my.oschina.net/bxxfighting/blog/378196   先注册github.com的账号官方网站: https://github.com/ 注册界面, ...

  2. git for windows 的默认工作路径(HOME)的设置以及Git与GitHub之间的SSH加密协议

    1.安装及配置默认路径 Windows中从GitHub上面:https://git-for-windows.github.io/ 下载安装好git后(双击,改一下需要的安装路径,一路确定就好了),安装 ...

  3. git与github安装、配置、pull、push

    操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...

  4. 转:sublime上使用git连接github

    "工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...

  5. git与github使用

    Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的关联 六. ...

  6. linux下git以及github的连接与使用

    简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...

  7. Git和Github简单教程

    原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...

  8. Git和Github简单教程(转)

    这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能: ...

  9. WebStorm和sublime上使用git连接github(转)

    WebStorm使用git连接github的方法: 用webstorm上传代码时,首先要先下载git,网址一搜就可以搜到,安装git,并且把ssh配置到github上.然后开始配置webstorm,打 ...

  10. git和github使用方式

    git 和github github是远程管理代码的服务器的名称 git代码管理系统 (git既然是一个系统,所以说git也有一些命令) git操作过程 首先在本地建立一个仓库,用来把代码提交到git ...

随机推荐

  1. 个人记账app(一)需求设计

    时间如流水,只能流去不流回. 学历代表你的过去,能力代表你的现在,学习能力代表你的将来. 学无止境,精益求精. 一.开发背景 Android应用市场记账的app那么多,我为什么还要再开发一个呢?重复造 ...

  2. CasperJS 前端功能测试

    CasperJS 是一个开源的导航脚本和测试组件.它提供实用的高级函数.方法和语法糖,可完成以下任务: 对浏览导航步骤的定义和排序 填写和提交表单 点击和跟踪链接 获取页面快照(或者页面中的某部分) ...

  3. Java并发编程之线程池的使用

    1. 为什么要使用多线程? 随着科技的进步,现在的电脑及服务器的处理器数量都比较多,以后可能会越来越多,比如我的工作电脑的处理器有8个,怎么查看呢? 计算机右键--属性--设备管理器,打开属性窗口,然 ...

  4. OptimalSolution(2)--二叉树问题(4)子树与拓扑结构

    一.判断t1树是否包含t2树全部的拓扑结构 1 / \ 2 3 2 / \ / \ / \ 4 5 6 7 4 5 / \ / / 8 9 10 8 返回:true 解法(O(M×N)):如果t1中某 ...

  5. django-模板之comment标签(六)

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  6. Rest_Framework之认证、权限、频率组件源码剖析

    一:使用RestFramwork,定义一个视图 from rest_framework.viewsets import ModelViewSet class BookView(ModelViewSet ...

  7. VMware问题--无法获得 VMCI 驱动程序的版本: 句柄无效

    关于VMware问题:无法获得 VMCI 驱动程序的版本: 句柄无效.驱动程序“vmci.sys”的版本不正确 问题截图: 解决 1.根据配置文件路径找到对应的.vmx文件: 2.用编辑器打开,找到v ...

  8. 「刷题」可怜与STS

    又是一道假期望,我们发现一共有$ C_{2n}^m $种情况. 而$ \frac{(2n)!}{m!(2n-m)!}=C_{2n}^m $ 其实结果就是各个情况总伤害. 1.10分算法,爆搜10分. ...

  9. csps模拟测试 77爆零反思

    题不算太难,可是我还是没考出应有水平. $1h8min$切掉前两道题,然后$T3$想到正解并且码出来了并且过了大样例并且爆零. 没什么好说的,我太自信了,没打对拍? 想到了正解,还不如随便打个暴力分高 ...

  10. VueI18n - 多语言国际化支持插件

    VueI18n介绍 vue-i18n是一个vue组件,主要功能是提供国际化多语言的支持.例如项目中打印收费单功能,需要支持中英文打印,使用该组件就很容易的实现,而不必写两份打印单页面. 使用方法 安装 ...