廖雪峰git教程学习笔记
对git来说,没有消息就是最好的消息
使用 git init 把当前目录变为git仓库
要在仓库里加入文件,先在仓库目录新建这个文件后,比如新建一个文件xiaobai.txt,内容为:

在命令行里输入 git status,出现提示xiaobai为untracked file,即没有加入仓库:

git的工作机制为:

仓库所在的目录文件夹为工作区,但工作区里的文件不一定全都是版本库(repository)里的,版本库里又分为暂缓区stage和另一个区域master,有一个指向master的指针HEAD,代表当前版本库,使用 git add文件名 命令会将新文件或修改的文件加入stage缓存区,每一个文件都要使用一次这个命令!!然后再使用 git commit –m”注释” 命令来一次性把这些改动加入master,注意git commit命令只会把stage中的内容提交,如果在某些文件使用git add命令后,又新建或改动了一些文件(或者二次修改这些已经git add的文件),则使用git commit命令不会把这些后来者加入版本库(已经git add 的文件后来的修改也不会被提交,而提交的是二次修改之前的内容,如果要提交二次修改的内容,则要再次使用git add命令)!每一次有新文件加入master或原有的文件发生改动,就会产生一个新的版本。
把xiaobai.txt加入缓存区(没有消息就是最好的消息):

再使用 git status 查看状态:

提示缓存区内有新文件等待commit到master
使用 git commit –m”new xiaobai” 一次性把缓存区内的东西提交到master:

3 insertions指的是xiaobai里有3行内容
此前版本库中已存在文件akk.txt:

修改其内容:

再使用git status ,提示版本库里的文件被修改:

此时要使用 git add akk.txt 才能加入缓存区stage,使用 git commit –m”some common” 才能写入版本库,形成一个新的版本,若使用
git checkout – akk.txt 会放弃上一部的修改!打开akk.txt,发现又回到了原来的样子:

如果想看akk.txt具体修改了什么内容,则使用git diff “文件名” 命令:

(红色为原来的内容,绿色为修改后的内容)
也可以使用 git diff HEAD – 文件名 查看工作区和版本库里最新版本的区别:

如果修改后文件已使用git add命令加入stage,则使用 git reset HEAD 文件名 命令会使他退出stage:

总之,被修改但没有加入stage的用git
checkout命令会被删除修改,已加入stage的用git reset
HEAD 文件名 命令会被退出stage
使用 git rm 文件名 删除文件(只能删除版本库中的,无法删除工作区的文件):

发现工作区目录中已经没有了xiaobai.txt文件,删除文件后一样要使用git commit命令提交新的版本:

在使用git commit提交新版本之前,git checkout -- 文件名 命令还可以起到恢复文件的作用!(git
checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”)
廖雪峰git教程学习笔记的更多相关文章
- 廖雪峰 Git教程学习笔记 原文 http://www.liaoxuefeng.com/
一 .集中式与分布式 先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推 ...
- 廖雪峰git教程学习笔记3
commit是一串不便记忆的数字,为了方便记忆,引入tag,tag就跟HEAD一样,就像一个指针,指向commit,且指向是不能变得,一个commit就有一个tag 给当前分支下的当前commit打上 ...
- 廖雪峰git教程学习笔记2
本地git仓库和github仓库之间的传输是通过SSH加密的,所以: 注册GitHub账号 创建SSH key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id ...
- Git-第五篇廖雪峰Git教程学习笔记(4)分支
1.一开始,只有一个主分支(master),HEAD指向Master,而Master指向主分支.现在我们创建dev分支. lfy@lfy-PC MINGW64 /c/fyliu/lfyTemp/git ...
- Git-第四篇廖雪峰Git教程学习笔记(3)远程仓库,克隆远端库
1.本次连接的是gitHub仓库. 1>创建SSH Key. ssh-keygen -t rsa -C "youremail@example.com" lfy@lfy-PC ...
- Git-第三篇廖雪峰Git教程学习笔记(2)回退修改,恢复文件
1.工作区 C:\fyliu\lfyTemp\gitLocalRepository\yangjie 2.版本库 我们使用git init命令创建的.git就是我们的版本库.Git的版本库里存了很多东西 ...
- Git-第二篇廖雪峰Git教程学习笔记(1)基本命令,版本回退
1.安装Git-2.16.2-64-bit.exe后,设置用户名,用户邮箱 #--global参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地 ...
- 廖雪峰 Git 教程 + Git-Cheat-Sheet 学习总结
廖雪峰 Git 教程 + Git-Cheat-Sheet 学习总结 本教程主要是个人的 Git 学习总结. 主要参考博客: 廖雪峰 Git 教程 Git-Cheat-Sheet 文章目录 廖雪峰 Gi ...
- git学习笔记——廖雪峰git教程
OK,先附上教程--廖雪峰的官方网站 友情连接:git官网 简介 这里我只想引用他的原文: Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的.实际情况是这样的: L ...
随机推荐
- 将Python打包成可执行文件exe的心路历程
导言: 我们有时候需要将做好的Python程序打包成为一个exe , 方便我们使用,查找了资料发现 pyinstaller .py2exe,最后还是选择的pyinstaller,用的时候踩过了挺多的坑 ...
- MVC四大筛选器—AuthorizeFilter
在Action的执行中包括两个重要的部分,一个是Action方法本身逻辑代码的执行,第二个就是Action方法的筛选器的执行. MVC4中筛选器都是以AOP(面向方面编程)的方式来设计的,通过对Act ...
- 解密虚拟 DOM——snabbdom 核心源码解读
本文源码地址:https://github.com/zhongdeming428/snabbdom 对很多人而言,虚拟 DOM 都是一个很高大上而且远不可及的专有名词,以前我也这么认为,后来在学习 V ...
- 【目录】利用Python进行数据分析(第2版)
第一章 准备工作 1.1 What Is This Book About(这本书是关于什么的) 1.2 Why Python for Data Analysis?(为什么使用Python做数据分析) ...
- Spring-IOC bean 创建过程中的 ObjectFactory
AbstractBeanFactory中doGetBean方法里有一段拿到RootBeanDefinition后,实例化该bean的方法 // Create bean instance. if (mb ...
- [luogu2668] 斗地主
题面 这好像就是道**暴搜题, 由于可以回溯, 所以顺序其实没有多大的关系, 见代码吧... 具体代码 #include <iostream> #include <cstring ...
- Lambda表达式学习(1)
项目里面需要经常对一系列同类型集合进行操作 , 如对集合进行增加元素 , 删除集合的指定索引的元素等等.我们可以使用ArrayList来进行. 如 ArrayList stringArrayLis ...
- 2.编写实现:有一个三角形类Triangle,成员变量有底边x和另一条边y,和两边的夹角a(0<a<180),a为静态成员,成员方法有两个:求面积s(无参数)和修改角度(参数为角度)。 编写实现: 构造函数为 Triangle(int xx,int yy,int aa) 参数分别为x,y,a赋值 在main方法中构造两个对象,求出其面积,然后使用修改角度的方法,修改两边的夹角,再求出面积值。(提示
求高的方法 h=y*Math.sin(a) 按题目要求,需要我们做的分别是:1.改角度2.显示角度3.求面积并显示 代码用到:1.静态成员变量以修改角度2.数学函数 以下具体代码具体分析 import ...
- Netflix中的负载均衡策略
Spring Cloud的负载均衡策略可以通过配置Ribbon搞定,也就是注入实现com.netflix.loadbalancer.IRule的类,当前包含的策略包括 1.RandomRule 随机策 ...
- PHP访问数缓存处理
利用Redis或Memcache作为MySQL的缓存,采用是ThinkPHP框架. 方法一 采用ThinkPHP的S方法: $savedata['uid']=session('uid'); $save ...