git diff #是工作区(work dict)和暂存区(stage)的比较
git diff --cached #是暂存区(stage)和分支(master)的比较

Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。

$ git add readme.txt
$ git commit -m "append GPL"  #-m为添加评论

查看日志 git log

$ git log --pretty=oneline

回退到上一个版本 git reset

$ git reset --hard 3628164

关了电脑,想回到上一个版本

Git提供了一个命令git reflog用来记录你的每一次命令:

$ git reflog

工作区与缓存区的区别见图

输出文件内容

cat readme.txt

撤销修改

  • 没有添加到缓存区,丢弃工作区的修改
$ git checkout -- readme.txt  #命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,
  • 已经添加到缓存区了
git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区
$ git reset HEAD readme.txt

删除文件

  • 真的要删除文件
$ rm test.txt
$ git rm test.txt
$ git commit -m "remove test.txt"
  • 另一种情况是删错了
$ git checkout -- test.txt
# git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

最简单的流程:

1. git clone https//...
2. 编辑要该的内容
3. git add 文件名
4. git commit -m 'comment'
5. git push https//...

创建与合并分支

创建dev分支,然后切换到dev分支
$ git checkout -b dev  #命令加上-b参数表示创建并切换

查看当前分支

git branch命令查看当前分支:
$ git branch
* devmaster
git branch命令会列出所有分支,当前分支前面会标一个*号。查看分支:git branch创建分支:git branch <name>切换分支:git checkout <name>
git checkout master创建+切换分支:git checkout -b <name>合并某分支到当前分支:git merge <name>删除分支:git branch -d <name>

分支使用步骤:

1.git checkout -b dev 创建分支
2.在分支上修改文件
3.git add readme.txt
4.git commit -m 'modify readme'
5.git checkout master 切换回master分支
6.git merge dev 合并分支
7.git branch -d dev 删除分支     -D 大写的D为强行删除
8.git branch 查看分支

当不用fast forword 模式合并时,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
此时merge步骤

1.git cheakout -b dev
2.修改文件
3.git add readme.txt
4.git commit -m 'modify readme'
5.git checkout master
6.git merge --no-ff -m "merge with no-ff" dev  (--no-ff 非快速模式,因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。)
7.git branch -d dev
8.git branch合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash

修复好bug后,用git stash pop,恢复的同时把stash内容也删了

推送分支

git push origin master
git push origin dev

在分支上打标签

$ git tag v0.9 6224937 (6224937为版本号)

如何让fork来的repo保持更新

1. git remote add upstream https//..
2. git fetch upstream
3. git rebase upstream/master  #将所有更新推到自己的远端repo

git笔记(廖雪峰版本)相关推荐

  1. 02-Python解释器-Python笔记-廖雪峰

    02-Python解释器-Python笔记-廖雪峰 CPython 官方版本的解释器:CPython.这个解释器是用C语言开发的,所以叫CPython. IPython IPython是基于CPyth ...

  2. Python学习笔记---------廖雪峰(基础和函数)

    Python学习笔记---------廖雪峰(基础和函数)

  3. 《GIT教程-廖雪峰》笔记

    总结:雪峰老师的git教程确实没有其他花里胡哨的东西,都是干货.自己平时在用git管理项目,对不怎么熟悉的命令mark一下. git diff 可能用到的场景:上周写了代码没有提交,周一来后忘了写的什 ...

  4. 沐阳Git笔记04查看版本演变历史

    04git log 查看版本演变历史 一行展示 git log --oneline 显示最近4次的提交 git log -n4 显示最近几次和一行 git log --oneline -n2 切换到一 ...

  5. 廖雪峰Git教程笔记与总结 -- Git简介、常用命令、分支管理

    本文主要用于记录阅读Git教程 - 廖雪峰的官方网站后的一些心得笔记,并且对git一些常用命令做一个整理总结. 本文要点分为:1.Git简介:2.Git常用命令:3.Git分支管理. 一.Git简介 ...

  6. Git 操作简单总结:廖雪峰教程

    廖雪峰Git教程:Git教程 - 廖雪峰的官方网站 命令总结: git add a.txt:添加工作区内容到暂存区 git commit -m "first commit":将暂存 ...

  7. 廖雪峰Git教程学习笔记

    廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b ...

  8. 廖雪峰git入门教程——学习笔记

    https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 Q1:什么是GIT? A1:分布 ...

  9. Git学习笔记及一些问题(廖雪峰版)

    GIT笔记 创建一个仓库总体流程 配置SSH Key 创建本地仓库文件夹 添加远程库(与本地库关联) PUSH文件到远程库 远程clone库 clone后push失败问题 版本回退 撤消修改 删除文件 ...

最新文章

  1. 大多数的自动驾驶公司,注定要倒闭
  2. OpenGL中投影变换矩阵的反向推导
  3. 【Python基础】惊叹,Pyecharts绘制饼图原来可以如此漂亮!
  4. 中国互联网的“去中心化”与“中心化”之战
  5. 一次挖掘SRC漏洞 - 从0到有
  6. 一文读懂MySQL查询语句的执行过程
  7. IndentationError: unindent does not match any outer indentation level-报错问题
  8. linux shell中的流编辑器sed的使用
  9. 大学计算机基础字母缩写大全,大学计算机基础缩写词.pdf
  10. 省会、自治区、直辖市、特别行政区
  11. AIGC:自动化内容生成,AI 的下一个引爆点?
  12. vtk学习教程(一)
  13. SQL中的Round函数
  14. Premiere Pro之视频转场效果(四)
  15. bigdecimal如何做除法_bigdecimal类型除法问题
  16. 用户配置 计算机配置文件,Win10系统创建自定义默认用户配置文件
  17. 腾讯为什么把全国最大的数据中心落户到南京?
  18. 码牛学院安卓Android移动互联网高级开发正式课学习笔记
  19. android开发中中按钮 变成红边白底,PS人像换红底为白底等的处理
  20. 安卓开发 从入门到转业 (一)

热门文章

  1. java虚拟机之二虚拟机内存结构
  2. java虚拟机之一内存运行时数据区域解释
  3. golang 监听服务的信号,实现平滑启动,linux信号说明
  4. mybatis、mybatisplus的常用操作
  5. U盘文件系统类型 和 linux 挂载 和 卸载
  6. Java 文件路劲获取(流的方式),适用与jar包或war包运行方式
  7. ubuntu openssl1.0.2g交叉编译
  8. MS CRM 2011 如何创建基于SQL的自定义报表,并使用数据预筛选(Pre-Filtering)
  9. php7下新版Ueditor
  10. golang解析IP到城市jsonRPC服务教程