Git及Github
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的更多相关文章
- 简单使用Git和Github来管理自己的代码和读书笔记
原文链接:http://my.oschina.net/bxxfighting/blog/378196 先注册github.com的账号官方网站: https://github.com/ 注册界面, ...
- git for windows 的默认工作路径(HOME)的设置以及Git与GitHub之间的SSH加密协议
1.安装及配置默认路径 Windows中从GitHub上面:https://git-for-windows.github.io/ 下载安装好git后(双击,改一下需要的安装路径,一路确定就好了),安装 ...
- git与github安装、配置、pull、push
操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...
- 转:sublime上使用git连接github
"工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...
- git与github使用
Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的关联 六. ...
- linux下git以及github的连接与使用
简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...
- Git和Github简单教程
原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...
- Git和Github简单教程(转)
这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能: ...
- WebStorm和sublime上使用git连接github(转)
WebStorm使用git连接github的方法: 用webstorm上传代码时,首先要先下载git,网址一搜就可以搜到,安装git,并且把ssh配置到github上.然后开始配置webstorm,打 ...
- git和github使用方式
git 和github github是远程管理代码的服务器的名称 git代码管理系统 (git既然是一个系统,所以说git也有一些命令) git操作过程 首先在本地建立一个仓库,用来把代码提交到git ...
随机推荐
- 设计模式(十九)State模式
在面向对象编程中,是用类表示对象的.也就是说,程序的设计者需要考虑用类来表示什么东西.类对应的东西可能存在于真实世界中,也可能不存在于真实世界中.对于后者,可能有人看到代码后会感到吃惊:这些东西居然也 ...
- Mysql数据库(三)Mysql表结构管理
一.MySQL数据类型 1.数字类型 (1)整数数据类型包括TINYINT/BIT/BOOL/SMALLINT/MEDIUMINT/INT/BIGINT (2)浮点数据类型包括FLOAT/DOUBLE ...
- Sping MVC不使用任何注解处理(jQuery)Ajax请求(基于XML配置)
1. Spring Spring框架是一个轻量级的解决方案,是一个潜在的一站式商店,用于构建企业就绪的应用程序.Spring框架是一个Java平台,为开发Java应用程序提供全面的基础架构支持.Spr ...
- Mac OSX 10.7.3 以上系统安装JDK1.7失败 Java from Oracle requires Mac OS X 10.7.3 or later.
解决办法: 打开JDK dmg安装包,把里面的pkg安装包拖出来然后解包 xar -xf JDK\ 7\ Update\ 40.pkg ./Java 修改Distribution文件找到pm_inst ...
- Centos7 基础命令与软件的安装
本人小白一枚正在老男孩培训,所以从现在开始把我学到的知识都分享给大家,该随笔会一直更新 centos7基础命令与软件 ps:命令与参数之间必须加上空格,安装成功时最后一行会有 Complete! ...
- Hive基本介绍
4.1 基本介绍: Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优点是学 ...
- 大事祭——MiserWeyte
2019.9.10 QHDYZ组建信奥集训队祭(我哪知道这个鶸学校为啥这个时候组队) 2019.9.11 成为集训队毒瘤出题人祭 2019.9.21 博客界面优化祭(终于不是白底蓝框了)“那个拿剑的就 ...
- loadrunner常用web动作函数
web_custom_request ---允许使用任何http请求方法 脚本一: web_custom_request("baidu_request","URL=ht ...
- CSPS模拟 82
还是Z哥的题,不过据说最后一题是D哥的 怪不得D2T3突然良心 (其实是突然毒瘤) 总分260大概是省三水平 不过和迪神并列了感觉还是很荣niu幸bi的- T1 考场上我弃了 因为是数学题,还要推柿子 ...
- 分布式系统中session一致性问题
业务场景 在单机系统中,用户登陆之后,服务端会保存用户的会话信息,只要用户不退出重新登陆,在一段时间内用户可以一直访问该网站,无需重复登陆.用户的信息存在服务端的 session 中,session中 ...