版本控制系统 git 之基础讲解
很久之前就用起了git,但都是用在从github上clone项目上,或者hexo的博客提交上,直到前段时间加入了学校的技术中心,需要用git进行文件管理,才去了解了下git的具体使用方式。
什么是git
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。它与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。它不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
工作流程
一般来说,git的工作流程分为以下几步
- clone Git 资源作为工作目录
- 在克隆的资源上添加或修改文件
- 如果源文件被修改了,可以进行资源更新
- 提交前查看修改
- 提交修改
- 修改完成后,如发现错误,可以撤回提交并再次修改后重新提交
基本使用方式
创建仓库
首先创建一个文件夹,在文件夹中右键,git bush,键入
git init
执行完该命令后,会在当前目录下生成一个.git目录。
然后我们新建一个readme.txt文件,使用Notepad++打开,随便输入一些内容。
然后执行下面步骤
$ git add readme.txt
$ git commit -m "first"
这里,git commit -m后面的内容指的是对本次提交的说明,可以输入任何内容。
版本控制
我们先进行几步这样的操作,将刚才创建的readme.txt里的内容修改,然后执行提交操作,-m后面的内容就写当前次数,重复两遍差不多。这样,我们就提交了三个版本,版本1: first, 版本2: second ,版本3: third。当然,在实际工作中,并不可能记得每次修改的内容,因此,我们可以用以下命令查看。
$ git log
如果我们想退回上一个版本,那么我们可以输入
$ git reset --hard HEAD^
然后去查看一下,发现文本内容变为了第二次提交时的内容,再用git log查看,确实回退到了第版本二,那么,这是不是意味着我们退不回去了呢?当然不是,如果你知道版本3的commit id的话,还是可以返回的。commmit id?那是啥?就是在你输入 git log 时,显示的一大串内容中,每一段 commit 后面的那串字符。
$ git reset --hard id
输入上面的内容,就可以退回去了,这里 id 不一定要全输完,只需要输如一部分即可,Git会自动去找,但也不能太短,因为Git可能会找到多个版本号,就无法确定是哪一个了。
同时,git还提供了一个命令
$ git reflog
用来记录你的每一次命令,同时,使用该命令时,也会显示被修改的版本的 commit id。
远程仓库
前面讲的仓库是属于本地的,但是当这个项目是团队协作的时候,我们就需要远程仓库了。我们可以在github上创建一个仓库,输入本地仓库的文件夹名,根据GitHub的提示,在本地仓库下运行命令:
$ git remote add origin git@github.com:xxxxx/xxx.git
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
$ git push -u origin master
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样,在之后的操作中,只需要输入以下命令即可
$ git pull
$ git add .
$ git commit -m ""
$ git push origin master
总结
这样,关于git的一些基本操作就讲完了,关于其他的一些分支管理、标签管理等就之后用到的时候再做补充了。
版本控制系统 git 之基础讲解的更多相关文章
- [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git
[.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...
- [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit
[.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...
- [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
[.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...
- 分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境(服务器端及客户端)(转)
近期想改公司内部的源码管控从TFS为git,发现yubinfeng大侠有关git的超详细大作,现将其转载并记录下,以防忘记,其原博客中有更加详细的git及.net开发相关内容.原文地址:http:// ...
- 一篇文章带你了解热门版本控制系统——Git
一篇文章带你了解热门版本控制系统--Git 这篇文章会介绍到关于版本控制的相关知识以及版本控制神器Git 我们可能在生活中经常会使用GitHub网页去查询一些开源的资源或者项目,GitHub就是基于G ...
- 菜鸟学IT-分布式版本控制系统Git的安装与使用
分布式版本控制系统Git的安装与使用 本次作业要求来于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 一.首先在window ...
- 分布式版本控制系统 Git 的安装与使用
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/CJL29 ...
- 分布式版本控制系统Git的安装与使用
分布式版本控制系统Git的安装与使用 作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 我的远端仓库地址是:htt ...
- 【软件工程】分布式版本控制系统Git的安装与使用
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/Richa ...
随机推荐
- History API:ScrollRestoration
By Paul Lewis(设计和性能倡导者) 翻译:江天 使用history api管理url是非常棒的一件事,可以说这是一个好web app的极为重要的特点.但它有一个缺点,滚动位置虽然被存储 ...
- 12章 搜索框架ElasticSearch介绍和整合SpringBoot 4节课
1.搜索引擎知识和搜索框架elasticsearch基本介绍 简介:通过京东电商 介绍什么是搜索引擎,和开源搜索框架ElasticSearch6.x新特性介绍 前言:介绍ES的主要特点和使用场 ...
- win10 + ubuntu双系统详细安装过程
由于搞深度学习,电脑跟不上,换了一台神舟战神Z8,于是装一个ubuntu双系统,没想到几乎花了一天,还花了80个软妹币找人帮忙,蓝瘦,现在写下来供大家参考: 不得不说,win10 + ubuntu双系 ...
- springboot系列十五、springboot集成PageHelper
一.介绍 项目中经常会遇到分页,PageHelper为我们解决了这个问题.本质上实现了Mybatis的拦截器,作了分页处理. 二.配置PageHelper 1.引入依赖 pagehelper-spri ...
- 【转】通过xml处理sql语句时对小于号与大于号的处理转换
当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序 ...
- linux更换yum源
由于 redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装,再配置其他源,以下为详细过程: 1.删除redhat原有的yum rpm - ...
- ajax模拟获取json
现在工作中我用到获取数据的方式,基本都是ajax.前台获取后端的数据后,需要进行处理,然后把他们放进页面中的相应标签里.下面举一个简单的例子,来模拟数据的获取和摆放. 这里用ng框架获取数据然后处理, ...
- centos6.7环境半虚拟化软件xen及xm配置工具使用详解
1.xen软件的安装及配置 环境准备: ①操作系统:centos6.7(注意最好使用centos6.7,centos6.5无法使用xen的图形化界面创建操作系统) ②调整虚拟机配置,内存4G(推荐2G ...
- centos6.5环境基于corosync+cman+rgmanager实现RHCS及iscsi+gfs2+clvm的文件系统集群
centos6.5环境基于corosync+cman+rgmanager实现RHCS及iscsi+gfs2+clvm文件系统集群 一.环境准备 服务器列表: ansible server : 192. ...
- Python中的一些小语法
目录: 生成随机数 将一个字符串变为datetime类型,并且获取星期几 1.生成随机数 假设我们要操作的list如下: >>> import random >>> ...