版本控制系统 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 ...
随机推荐
- SQL Server 备份还原
SQL Server支持三种备份方式 完全备份: 差异备份 事务日志备份 一般备份方式为,完全备份/每周,差异备份/每天,事务日志备份/按分钟计,这样可确保备份的高效性和可恢复性. 1. 完全备份 备 ...
- ROS中的CMakeLists.txt
在ROS的编程过程中,如果CMakeLists.txt如果写不好,编译就很难成功.如果看不懂CMakeLists.txt那么很多错误你也不知道时什么回事.所以深入了解它是很有必要的.现在我们就来看看它 ...
- C++学习2--坦克大战编写-前置知识
基础班学习的这一个多月里的前三周讲解基础的语法,最后一周需要做坦克大战的项目巩固提高自己掌握的语法知识.这个系列博文主要是为了把学习过程中的知识点总结并记录下来: 开发语言与开发工具:C++,VS20 ...
- datatables 添加excel下载
Datatables 版本 1.10.12 和普通datatables不一样的是: 引入包 <script src="../../vendor/datatables/js/dataTa ...
- 【vim】删除标记内部的文字 di[标记]
当我开始使用 Vim 时,一件我总是想很方便做的事情是如何轻松的删除方括号或圆括号里的内容.转到开始的标记,然后使用下面的语法: di[标记] 比如,把光标放在开始的圆括号上,使用下面的命令来删除圆括 ...
- freeRTOS中文实用教程4--资源管理互斥
1.前言 访问一个被多任务共享,或是被任务与中断共享的资源时,需要采用”互斥”技术以保证数据在任何时候都保持一致性.这样做的目的是要确保任务从开始访问资源就具有排它性,直至这个资源又恢复到完整状态 F ...
- Python单元测试unittest - 单元测试框架
一.unittest简介 unitest单元测试框架最初是有JUnit的启发,它支持测试自动化,共享测试的设置和关闭代码,将测试聚合到集合中,以及测试与报告框架的独立性. 二.unittest相关概念 ...
- 通过本地yum源安装软件报错[Errno 14] PYCURL ERROR 56 - "Failure when receiving data from the peer"
通过本地yum源安装软件报错 http://192.168.3.85/centos/6/os/x86_64/Packages/php-pdo-5.3.3-47.el6.x86_64.rpm: [Err ...
- Python-HTML CSS题目
一.简答1.手写html模板,并解释模板每个标签的作用 <!doctype html> 文件类型html <html>页面根 <head>后勤内容 <meta ...
- myeclipse2017 安装包及破解插件的下载
一:安装包下载 链接:http://pan.baidu.com/s/1miIFqha 密码:nz7h 二:操作步骤 因为工作中需要有多个MyEclipse去管理不同的项目组的工作,恰逢MyEclips ...