git学习练习总资源链接: https://try.github.io/ (练习已通,有document)

本沙盒游戏教学:https://learngitbranching.js.org/?demo

自由沙盒模拟网页 : http://git-school.github.io/visualizing-git/

好的译文: https://github.com/geeeeeeeeek/git-recipes/wiki


什么是git?

一个分布式的源代码库。管理Linux内核源代码。

git已快照形式保存和处理内容,每一个提交都是一次快照。git可以在快照之间回滚。


一个节点代表一个commit.

*代表当前分支的最后一次提交:HEAD

master是主干。

其他名字是分支。

git merge :用于合并分支的代码。

git rebase : 线性合并分支:

git rebase [-i] [目标] [移动记录] 

git rebaes [目标]  #省略[要移动的记录],则为当前分支的所有commit。

假如当前分支是bugFix:

  1. git rebase master. 这样bugFix分支就相当于在master的基础上新增的代码了。
  2. git checkout master 回到master
  3. git rebase bugFix,  master和bugFix的代码都一样了。

HEAD:

是一个对当前检出记录的符号引用 -- 也就是指向你正在其基础上进行工作的提交记录

它总是指向当前分支上最后一次的提交记录。 大多数提交树的git命令都是从改变HEAD的指向开始的。

⚠️,后面章节讲的远程分支 origin/master是例外

HEAD 通常是指向分支名的(如bugFix)。在你提交commit时,改变了分支的状态,这一变化通过HEAD变得可见。

分离的HEAD:

让它指向某个具体的提交记录(hash值)而不是分支名。

git checkout <hash>

git checkout命令本质就是移动HEAD,到目标commit点, 然后更新工作目录以匹配这个commit点。

因为这个操作会overwrite local changes,导致改变的文件丢失,所以Git强迫你先commit或stash工作目录中的改变的文件。

⮀ git checkout master
error: Your local changes to the following files would be overwritten by checkout:
app/assets/javascripts/search.js
Please commit your changes or stash them before you switch branches.

关于git stash  (具体工作原理和全部的知识见链接文章)

会把尚未加入stage的文件和statge中的文件保存(就是未commited的文件),以便在之后使用。

之后可以revert them from your working copy.

现在可以进入任何其他操作,如创建新commits, 转变分支,执行其他git操作了。

⚠️stash是本地的。当你push的时候,stash不会被传输。

Re-applying your stashed changes:

$ git stash pop

另外使用git stash apply, 可以reapply the changes的同时在stash中保留它们。这在为多个分支应用时有用。

⚠️:默认Git不会stash 未tracked文件和ignored files。


相对引用

通过指定提交记录hash值的方式在Git中移动不方便操作。

必须用到git log, 而且hash值非常长。

因此可以只使用前几个字符代表一个提交记录 , 即“相对引用”。

^    代表

git 沙河游戏节点图, 自由沙盒模拟git, 各类交互git命令的更多相关文章

  1. Git 沙盒模拟实战(基础篇)

    Git 沙盒模拟实战 分支 现有一个主分支 创建分支 # 创建分支 $ git branch bugFix # 切换到指定分支 $ git checkout bugFix 或者 # 创建分支,并切换到 ...

  2. Git 沙盒模拟实战(远程篇)

    Git 沙盒模拟实战(远程篇) >---基础篇 远程仓库 远程仓库并不复杂, 在如今的云计算盛行的世界很容易把远程仓库想象成一个富有魔力的东西, 但实际上它们只是你的仓库在另个一台计算机上的拷贝 ...

  3. 3D 沙盒游戏之人物的点击行走移动

    前言 在 3D 游戏中,都会有一个主人公.我们可以通过点击游戏中的其他位置,使游戏主人公向点击处移动. 那当我们想要实现一个"点击地面,人物移动到点击处"的功能,需要什么前置条件, ...

  4. 游戏开发设计模式之子类沙盒模式(unity3d 示例实现)

    积累提供所有操作(的实现)来定义子类的行为用一个最简单的例子来讲解这个模式玩家操纵的英雄也就是这个游戏的主角会有许多技能,我们想定义许多不同的技能,来让玩家使用.首 先我们定义一个skillBase类 ...

  5. 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取”产品付费数量等于0的问题”】

    转的别人的 看到很多童鞋问到,为什么每次都返回数量等于0?? 其实有童鞋已经找到原因了,原因是你在 ItunesConnect 里的 “Contracts, Tax, and Banking”没有完成 ...

  6. iOS存储数据字典到沙盒

    1.创建一个账号数据模型 用来存放从服务器返回的数据,一般返回的是一个字典,里面包含了这个登陆用户的各种信息,这个数据模型就是用来存放这些东西的 创建一个数据模型  YYCAccount 继承 NSO ...

  7. <转>iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!

    原文地址:http://blog.csdn.net/xiaominghimi/article/details/6937097 //——2012-12-11日更新   获取"产品付费数量等于0 ...

  8. NSFileManager(沙盒文件管理)数据持久化 <序列化与反序列化>

    iOS应用程序只能在为该改程序创建的文件中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等.       默认情况下 ...

  9. iOS开发——多线程篇——快速生成沙盒目录的路径,多图片下载的原理、SDWebImage框架的简单介绍

    一.快速生成沙盒目录的路径 沙盒目录的各个文件夹功能 - Documents - 需要保存由"应用程序本身"产生的文件或者数据,例如:游戏进度.涂鸦软件的绘图 - 目录中的文件会被 ...

随机推荐

  1. Windows 7 Ultimate(旗舰版)SP1 32/64位官方原版下载地址

    MSDN于2011年5月12日,最新发布简体中文Windows 7 Ultimate 旗舰版 SP1 DVD镜像安装包,分32位和64位两个版本.最新发行代号分别是:677486(32位),67740 ...

  2. PGA结构

    当客户端向服务器发送连接请求,服务器监听到客户端的请求,在专用服务器模式下,会在服务器端衍生一个server process来代理客户的请求,server process进而向实例发起连接,创建会话, ...

  3. BBS - 文章评论

    一.文章评论 <div class="comment_region"> <div class="row"> <div class= ...

  4. socket协议和http协议性能对比

    最近做了一次队列服务的性能测试,是通过两种协议windows socket和http分别往内存中写入url.对比哪种协议的效果更高,下图是测试结果.此次使用的工具是loadrunner.在压socke ...

  5. Linux环境下proc的配置c/c++操作数据库简单示例

    在虚拟机上装了oracle11g数据库,原本想利用c/c++学习操作数据库.结果感觉摊上了一个大坑.从安装好oracle数据库到配置好proc的编译选项整整花了二天.但让我意识到自己自己几点薄弱:1. ...

  6. (转)二十三种设计模式及其python实现

    本文源码寄方于github:https://github.com/w392807287/Design_pattern_of_python 参考文献: <大话设计模式>——吴强 <Py ...

  7. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

    一.什么是跨域访问 举个栗子:在A网站中,我们希望使用Ajax来获得B网站中的特定内容.如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题.你可以理解为两个域名之间不能跨过域名来发送请求或者请 ...

  8. [华为]输入n个整数,输出其中最小的k个

    链接:https://www.nowcoder.com/questionTerminal/69ef2267aafd4d52b250a272fd27052c来源:牛客网 输入n个整数,输出其中最小的k个 ...

  9. try with resources简洁的异常捕获机制

    通过前篇的<Java文件IO流的操作总结>,我们知道了基本输入输出流的使用方式,但是每次都需要在finally处关闭流资源,这样操作起来既啰嗦又麻烦,有没有更简洁的方式呢?本篇就来讲解jd ...

  10. sql server 将时间中的时分秒改为00:00:00

    select convert(varchar(10),getdate(),120