git简单操作
来源:互联网 发布:sql语句查询时间段 编辑:程序博客网 时间:2024/06/09 19:01
小弟最近对git有了兴趣,于是便开始研究了起来.....
1.概念简介
由于这是我自己的学习笔记博客,所有有关git的介绍我就不过多介绍了,简单的来说,GIT就是分布式的版本管理,这里可能有的人会晕,说白一点,就是项目管理的一个工具(例如我有一个web项目)有人会问了,相对的,什么又是集中式呢,在下面很长的一段内容里面所讲的有关GIT功能与集中式的并没有什么区别,但是分布式版本管理系统
的优势又较之于集中式版本管理有着无敌大的优势...
基于git的项目管理的步骤
什么是版本库(repository)?简单的来说可以理解为一个目录,该目录的里面放置你的项目,举个例子
github目录文件就是我的一个本地版本库,我在里面放置了
若干的文件。而git的功能就是帮助我管理这些文件。
好了,让我们开始吧!
1.创建版本库 git init
我们进入一个目录之后遍告诉系统我们要将该目录作为我们的repository
在 git init之前我们的目录内容为空
在命令执行之后,我们发现
目录里出现了一个.git的隐藏文件,这个.git文件用处大着呢,咱们之后再来讲.
2.修改本地文件
创建完本地的版本库之后,我们先回到我们原始的git的概念上来,即分布式版本管理,我们要充分的理解这七个字的概念,何为分布式。
由图可知,每个人的电脑都是一个版本库,打个比方说,A和B两个人在库里修改了文件C和D,然后他们互相将修改的文件推送给对方看,对面看了之后觉得很满意,遍接纳了,于是,两个人的电脑里都有了来自于对方的修改后的文件。
讲完概念后,我们来修改本地文件,于是乎我们创建一个名叫 read的txt文件,在这里我们再来介绍一个叫做工作空间的概念:
所谓工作空间,其实就是你在你目录里实实在在看到的东西,在这里即为刚刚创建好的read.txt文件,现在我们的版本库里面还是空的,因为文件只是存在于我们的工作空间中,并没有添加到版本库里面去
在此之间我们可以用 git status命令查看 该命令可以列出,当前目录还没有被git管理的文件
提示说 nothing added to commit but untracked files present (use "git add" to track)
即除了没有路径的文件之外被没有可以提交的,这里的没有路径的文件实际上就是指我们的read.txt文件,而在想要将工作空间的文件同一到版本库里面,首先要用git add <filename> 讲文件放置在 缓存路径里面,然后用git commit -m "注释信息" 统一提交即可,我们再来看一张比较形象的图
途中的stage区就是我们的缓存区,Git为我们自动创建了一个master分支,以及一个HEAD指针,它指向当前的master分支,在我们在工作区做了修改之后,可以先后添加修改后的文件到stage区,然后用 git commit 命令同一把存在stage区的文件一并送到当前分支(master),
git add之后我们发现并没有任何提示,按照unix的思想,没有消息就是好消息,所以我们成功的把read.txt文件添加到stage区了,下一步我们就来把它commit了
完成后我们输入 git status 查看版本库的状态,发现提示说没有东西可以commit了,说明我们此时此刻的缓存区是没有东西的。
始终要记得一点,就是commit是把每次放在缓存区的文件提交上去,也就是说,即使你提交了修改到缓存区,之后,又在工作区修改了文件(即整个过程修改了两次),但最后commit的时候,只会将保存在缓存区的修改commit上去,
3.撤销修改
当然,人人都有犯迷糊的时候,假设你现在在凌晨赶做一份报告,你在文件的最后不小心加上了这么一句话:
完了蛋,这下你要是要把这个东西交上去,你就基本被fire了,但,你在刚准备add commit之前,灵光一现,发现好像哪里不对劲,首先,你用git status 查看
说明此时的修改还只是乖乖的躺在你的工作区里,并没有add到 缓存区,更没有commit上去,既是add 了 我们也有法子撤销(后面讲)
输入 git check --<filename> 即git check --read.txt 丢弃工作区的修改,此时我们再看
你的小命于是乎又被保住了,
,既是你已经把 那些敏感词汇(fu** u) add 到了缓存区,咱们还是有回头的余地的,我们再输入git status查看版本库的状态:
提示说
(use "git reset HEAD <file>..." to unstage),用该命令去解除缓存区的修改,
此时用git status,我们会发现它提示我们将修改add到缓存区,说明缓存区的修改已经被我们撤销了。
4.删除文件
当你在工作区删掉某个文件之后,git版本库会追踪你的操作,知道版本库与工作区的内容不一样了,
我们把read.txt在工作区删除了,然后输入git status 发现 它提示我们
1.用 git add <file> 命令去更新缓存区的修改,以便让版本库与工作区同步
或
2.提示我们用 git checkout -- filename 去取消刚刚工作区的删除操作,即复原read.txt文件
git add 一个在工作区已经删除的文件即为删除一个文件, 然后commit出去 ,现在版本库与工作区都已经没有了 read.txt文件了,不信你可以用git status 看一下
如果你说,这下不好坏了大事,我的read.txt里面还有重要的信息,这下工作区和版本库里面都没有了,这下怎么办呀,别急,git强大着呢 我们且看:
输入git log查看 git log 即提交的日志
git会列出从近到远的提交记录,每一次提交即一个版本,我们可以发现在 版本号为 be633ff....之后的版本号中都存在read.txt文件,此时我们只要将版本,回退到那些版本中,工作区,和版本库里都可以出现我们想要的read.txt文件啦。
输入
git reset --hard HEAD^,即回退到当前分支的上一个版本, HEAD右上角的^即为上一个版本 ^^为上上个版本,有人要问,我要是要回退到上30个版本也要这么操作吗?肯定不是呀 我们可以用HEAD~30来代替
然后我们发现我们心心念念的read.txt文件又回来了
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD
指针,当你回退版本的时候,Git仅仅是把HEAD从指向当前版本到指向当前版本的上一个版本.
有关git的基本操作我现在更新到这里,推荐你们一个git的简单教程网站http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
之后我还会更新的
- git简单操作
- git简单操作
- git 简单命令操作
- git简单操作分支
- git简单基本操作
- git的简单操作
- 简单git操作
- git简单操作
- git简单操作
- git 简单操作汇总
- git简单入手操作
- Git 简单操作
- git简单操作
- git 简单操作
- git的简单操作
- git的简单操作
- git 常用简单操作
- Git Submodule简单操作
- linux 栈溢出学习之return_to_dl-resolve
- Java程序员从笨鸟到菜鸟之(八十)细谈Spring(九)spring+hibernate声明式事务管理详解
- 生产者-消费者模型
- 基本的SQL概念及语法
- Java Web基础——Action+Service +Dao三层的功能划分
- git简单操作
- DFS深度优先搜索(6)--hdu1455(经典深搜+剪枝)
- 浙工大15新生赛 M大爷与数学题(最后一题)
- Java程序员从笨鸟到菜鸟之(八十一)细谈Spring(十)深入源码分析Spring之HibernateTemplate 和HibernateDaoSupport
- 欢迎使用CSDN-markdown编辑器
- 用python从数据库导入数据到excel中
- 鼠标拖动div(pc/移动)/touch事件/mouse事件
- 大数据组件安装准备工作2--再次配置已安装好的虚拟机
- Java程序员从笨鸟到菜鸟之(八十五)跟我学jquery(一)爱之初体验jquery