廖雪峰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 ...
随机推荐
- [转]IE9.0或者360下js(JavaScript、jQuery)不能正确执行(加载),按F12后执行正常;Firefox下ajax的success返回数据data(json、string)无法获取
兼容问题1: 页面的分享等插件加载不全,并无法点击. 兼容问题2: IE下页面选择器(#id..class.etc.)绑定click事件无法访问到,后台springmvc方法,也无法获取ajax的su ...
- python decorator的本质
推荐查看博客:python的修饰器 对于Python的这个@注解语法糖- Syntactic Sugar 来说,当你在用某个@decorator来修饰某个函数func时,如下所示: @decorato ...
- python第四课——运算符
一.python中的运算符: 什么是运算符? 就是计算机语言中用来参与运算的符号!! 1.算数运算符: 符号:+ - * / %(取余,取模) //(取整) **(开方) 2.比较运算符: 特点:比较 ...
- 关于前端惰性加载(jquery_lazyload)的使用和原理分析
1.前言 有时我们会有这样的需求,当网页有很多张图片的时候,我们不希望一次性就把图片加载完,而是希望当浏览器滑动到指定位置的时候再加载,这样可以节省带宽,它也能帮助减轻服务器负载.那么这种需求就需要利 ...
- CF893F:Subtree Minimum Query(线段树合并)
Description 给你一颗有根树,点有权值,m次询问,每次问你某个点的子树中距离其不超过k的点的权值的最小值.(边权均为1,点权有可能重复,k值每次询问有可能不同,强制在线) Input 第一行 ...
- Java进阶 -- 文章汇总
文章汇总 Java集合源码 -- Collection框架概述 Java集合源码 -- Map映射和Set集合 Java集合源码 -- List列表 String和StringBuffer 内部类 j ...
- react中受控组件相关的warning
在表单中,报如下的错,意思是非受控的输入框变成了受控的,报错信息如下 Warning: A component is changing an uncontrolled input of type te ...
- Python 把数据库的数据导出到excel表
import io,xlwt def export_excel(request): """导出数据到excel表""" list_obj = ...
- 在handlebars.js {{#if}}条件下的逻辑运算符解决方案
解决方案.这增加了比较运算符. Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) { switch (o ...
- break,continue,return和exit的区别
1.break break语句的使用场合主要是switch语句和循环结构. 在循环结构中使用break语句,就退出循环,接着执行循环结构下面的第一条语句. 如果在多重嵌套循环中使用break语句,当执 ...