git命令01
1.了解git工具产生的背景知识。
git 是什么? 目前它是一种分布式版本控制系统。
那什么又是版本控制系统? 一种能自动帮助记录每次文件的改动,不仅仅是记录自己对文件的修
改变化,而且可以记录其他人对同一文件修改的变化。如果想知道某个文件的某次修改哪里,就
直接通过这种软件来查看。这种软件就是版本控制系统。
2.安装git
对于centos :yum install -y git
对于ubuntu/debian: sudo apt-get install git
3. git 工作流程
本地仓库由git维护的三颗"树" 组成
(1)第一个是你的工作目录(working directory),它持有实际文件
(2)第二个是暂存区(Index),它像个缓存区域,临时保存你的文件修改
(3)第三个是HEAD,直接最后一次提交的结果
4. 创建本地库
(1)第一步
mkdir learngit #创建工作目录
cd leartgit #进入到工作目录中
(2)建立仓库:把工作目录初始为一个仓库。
git init #Initialized empty Git repository in /root/learngit/.git/
完成后可以发现,在工作目录下生成了一个以点开头的隐藏目录.git
注意:也不一定必须在空目录下创建Git仓库,选择一个已经有东西的目录也是可以的
(3)可以文件添加到版本库(也就是可以在目录创建文件)
在工作目录里创建文件,编写文件内容。vim filename 文件创建后,可以命令将文件添加到仓
库里面。
命令一:使用命令git add告诉Git,要将某文件添加至仓库里面
git add filename
命令二:使用命令git commit告诉Git,把文件提交到仓库:
git commit -m "wrote a readme file" # -m 后面的""用来说明文件修改说明信息
可以使用多次git add 命令添加文件,而git commit 将一次性提交所有修改的文件
小结:初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;
第二步,使用命令git commit,完成。
命令三:git status命令可以让我们时刻掌握仓库当前的状态。文件是否被修改或者文件被修改
但是没有被提交。
命令四:git diff filename
找出文件前后修改前后对比的内容
(4)版本回退
当文件内容多次被修改后,并且进行git add 和 git commit -m "" ,这会出现文件的多个版本
那么如何查文件的历史版本和当前版本呢?
命令五:git log
git log命令显示从最近到最远的提交日志,可以看文件被修改提交了几次
git log --pretty=oneline #每个历史版本按一行输出
$ git log --pretty=oneline
3628164fb26d48395383f8f31179f24e0882e1e0 append GPL
ea34578d5496d7dd233c827ed32a8cd576c5ee85 add distributed
cb926e7ea50ad11b8f9e909c05226233bf755030 wrote a readme file
其中前面很长的字符是commit_id(版本号,一旦提交都有与之对应的版本号)
如果想要从当前的文件版本回退到历史的某个版本,该有什么命令?
在Git中,用HEAD表示当前版本,也就是最新的提交
上一个版本就是HEAD^,
上上一个版本就是HEAD^^,
前N个版本表示:HEAD~N。
命令五来了:git reset --hard
git reset --hard^ HEAD(某个版本) #复位到最近的前一个版本。当然可以
git reset --hard "commit_id"
小结:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset
--hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本
明天:学习远程仓库
怎么添加远程库与怎么从远程库克隆。还有什么是分支管理、标签管理,最后是搭建git服务器。
git命令01的更多相关文章
- crontab 不能执行git命令问题备忘
这问题够隐蔽,折腾了近两个小时. 命令 git checkout tagname 手工执行都正常 但在crontab运行时发现分支一直切不过去. 后来告诉是crontab默认的 path 设置和系统 ...
- git命令使用方法
git安装包 http://c35.yunpan.360.cn/my/?sid=#%2F%E5%AE%89%E8%A3%85%E5%8C%85%2FGit%E5%AE%89%E8%A3%85%2F g ...
- Git命令使用指南
继续git相关的东西,网上很多讲解的,但是还是喜欢这个图:(爱屋及乌,当然内容也很好,文章链接:http://me.iblogc.com/2015/01/16/Git命令使用指南/) Git是软件开发 ...
- 源代码管理之Git命令的使用
目录 02.源代码管理之Git命令的使用 2.Git命令行演练-个人开发 2.1 如何学习git指令 2.2 初始化创建本地仓库 2.3 个人开发基本演练 2.4 Git的基本常识 3.Git命令行演 ...
- git命令使用(必备系列)
git是一个分布式版本控制系统,得益于高效.协作和快速的项目代码管理特性几乎每一个软件开发团队都在深度使用.本篇是对git命令的介绍,涵盖了不低于95%的日常操作命令,对你有用话可以收藏一下哦. 一. ...
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- 工作中常用的git命令
一 常用Git命令 git clone:(区分SSH or HTTP) git init:初始化仓库 二 Git命令详解 Git Bash下,cd /c git clone,从远程Git版本库克隆一份 ...
- 常用 Git 命令清单
我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下 ...
- 常look的Git命令
常用的Git命令 命令 简要说明 git add 添加至暂存区 git add–interactive 交互式添加 git apply 应用补丁 git am 应用邮件格式补丁 git a ...
随机推荐
- iframe的一些介绍
iframe 元素会创建包含另外一个文档的内联框架(即行内框架) 提示:您可以把需要的文本放置在 <iframe> 和 </iframe> 之间,这样就可以应对无法理解 ifr ...
- Disruptor 线程间共享数据无需竞争
队列的作用是缓冲 缓冲到 队列的空间里.. 线程间共享数据无需竞争 原文 地址 作者 Trisha 译者:李同杰 LMAX Disruptor 是一个开源的并发框架,并获得2011 Duke’ ...
- 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记8——载入三维模型&Alpha混合技术&深度测试与Z缓存
第17章 三维游戏模型的载入 主要是如何从3ds max中导出.X文件,以及如何从X文件加载三维模型到DirextX游戏程序里.因为复杂的3D物体,要用代码去实现,那太反人类了,所以我们需要一些建模软 ...
- [你必须知道的.NET]第二十七回:interface到底继承于object吗?
发布日期:2009.03.05 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. 说在,开篇之前 在.NET世界里,我们常常听到的一句话莫过于“S ...
- IllegalStateException: Unable to find a @SpringBootConfiguration
此处需要改掉包名和类名
- nginx应用场景,特性,目录结构,常用模块,内置变量,URL和URI,http状态码,配置文件详解
1.nginx介绍 1丶俄罗斯人开发的,开源www服务软件 2丶软件一共780K 3丶nginx本身是一款静态(html,js,css,jpg等)www软件 4丶静态小文件高并发,同时占用的资源很少, ...
- mangeto 清除分类 产品 客户
分类: SET FOREIGN_KEY_CHECKS=0; TRUNCATE TABLE `catalog_category_entity`; TRUNCATE TABLE `catalog_cate ...
- JavaScript中字符串分割函数split用法实例
这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaSc ...
- Ubuntu Nginx
如果是阿云的ECS服务器,默认是已经安装了Apache服务器的,但一般都用不到,可以选择将它卸载 sudo service apache2 stop update-rc.d -f apache2 re ...
- Qt精简编译方法总结
原文请看:http://blog.csdn.net/loaden/article/details/6061702 Qt如果采取默认编译安装,一般都要占用上G的空间.当初自己不想涉及Qt的一个原因,就是 ...