git 沙河游戏节点图, 自由沙盒模拟git, 各类交互git命令
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:
- git rebase master. 这样bugFix分支就相当于在master的基础上新增的代码了。
- git checkout master 回到master
- 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命令的更多相关文章
- Git 沙盒模拟实战(基础篇)
Git 沙盒模拟实战 分支 现有一个主分支 创建分支 # 创建分支 $ git branch bugFix # 切换到指定分支 $ git checkout bugFix 或者 # 创建分支,并切换到 ...
- Git 沙盒模拟实战(远程篇)
Git 沙盒模拟实战(远程篇) >---基础篇 远程仓库 远程仓库并不复杂, 在如今的云计算盛行的世界很容易把远程仓库想象成一个富有魔力的东西, 但实际上它们只是你的仓库在另个一台计算机上的拷贝 ...
- 3D 沙盒游戏之人物的点击行走移动
前言 在 3D 游戏中,都会有一个主人公.我们可以通过点击游戏中的其他位置,使游戏主人公向点击处移动. 那当我们想要实现一个"点击地面,人物移动到点击处"的功能,需要什么前置条件, ...
- 游戏开发设计模式之子类沙盒模式(unity3d 示例实现)
积累提供所有操作(的实现)来定义子类的行为用一个最简单的例子来讲解这个模式玩家操纵的英雄也就是这个游戏的主角会有许多技能,我们想定义许多不同的技能,来让玩家使用.首 先我们定义一个skillBase类 ...
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取”产品付费数量等于0的问题”】
转的别人的 看到很多童鞋问到,为什么每次都返回数量等于0?? 其实有童鞋已经找到原因了,原因是你在 ItunesConnect 里的 “Contracts, Tax, and Banking”没有完成 ...
- iOS存储数据字典到沙盒
1.创建一个账号数据模型 用来存放从服务器返回的数据,一般返回的是一个字典,里面包含了这个登陆用户的各种信息,这个数据模型就是用来存放这些东西的 创建一个数据模型 YYCAccount 继承 NSO ...
- <转>iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!
原文地址:http://blog.csdn.net/xiaominghimi/article/details/6937097 //——2012-12-11日更新 获取"产品付费数量等于0 ...
- NSFileManager(沙盒文件管理)数据持久化 <序列化与反序列化>
iOS应用程序只能在为该改程序创建的文件中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 默认情况下 ...
- iOS开发——多线程篇——快速生成沙盒目录的路径,多图片下载的原理、SDWebImage框架的简单介绍
一.快速生成沙盒目录的路径 沙盒目录的各个文件夹功能 - Documents - 需要保存由"应用程序本身"产生的文件或者数据,例如:游戏进度.涂鸦软件的绘图 - 目录中的文件会被 ...
随机推荐
- MVC之路由
1.路由规则理解: 在MVC项目中,路由是一个独立的模块,需要引入System.Web.Routing ,路由的作用就是确定控制器和行为,同时确定其他的参数,然后将这些信息传递个相应的控制器和行为. ...
- Haskell ghci中调用pandoc的API进行markdown转换
所用环境:Windows Server 2008 + ghc 7.6.3(Haskell Platform 2013.2.0.0自带的) + pandoc 1.12.4 操作步骤: 1. 安装Hask ...
- ubuntu下完全卸载opencv3.1.0
在ubuntu下删除opencv需要以下步骤: 1.进入opencv的源代码文件夹下的release(这是你在安装opencv时候自己命名的,cmake时候所在的目录) 2.执行以下命令 sudo m ...
- # 释放内存 filter_res_q_l = filter_res_q_l[-2048:] filter_res_a_l = filter_res_a_l[-2048:]
# 释放内存filter_res_q_l = filter_res_q_l[-2048:]filter_res_a_l = filter_res_a_l[-2048:]
- 2.wireshark分析之TCP协议(一)
(1) TCP是怎么样的协议? TCP是一种面向连接(连接导向)的.可靠的基于字节流的传输层通信协议.TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认.对失序的数据重新排 ...
- MySQL不能启动 Can't start server : Bind on unix socke
MySQL服务器突然不能启动,查看最后的启动日志如下: 080825 09:38:04 mysqld started080825 9:38:04 [ERROR] Can't start server ...
- 【工具】代码生成器-python脚本
我觉得造轮子这件事情,是谁都可以做的.只不过做得好或者不好而已,用心了做得就要优雅一点. 之前用过java的代码生成器,什么pojodobodbo都能生成,于是我也来自己造一个轮子. 造轮子的事情是没 ...
- php根据路径获取文件名
<?php // 根据路径返回文件名 $path = 'J:\abc\defg\hijk\一个文件夹\lmn\opq'; $path = iconv("UTF-8", &qu ...
- net.tcp协议的wcf服务在远程计算机无法调用问题分析
可能原因1:net.tcp监听端口服务没有启动. 可能原因2:防火墙阻止了端口服务器路径访问. 可能原因3:配置文件路径endpoint路径和引用路径不一致 可能原因4:权限受限制.
- devise 自定义手机号登录
user model中配置 validates_uniqueness_of :phone def email_required? false end 修改user migration文件,给phone ...