[git]问题list
1. fast-forward和non fast-forward分别代表什么概念?
2. 在git中文件index是个什么概念?
3. stage/index/cache三者有什么关系?
4. git hard/soft/mix是什么概念?
5. HEAD
6. HEAD~和HEAD^
1. fast-forward和non fast-forward分别代表什么概念
fast forward是指可以通过HEAD指针的简单移动就可以达到合并的效果,而后者则反之。比如master分支上新建了一个dev指针,并且在master和dev上都有提交,但是二者并不是涉及同一行,也即没有conflict,这样在master分支上合并dev或者dev分支上合并master都会提示为此次的merge为fast forward, 只是HEAD指针的简单前移。
non-fast forward则可以理解为A和B同时从server更新了同一份代码,而A更改某个文件后提交,随后B也更改了该文件,当执行git push的时候,则会提示non fast forward, 这个时候需要git pull更新,然后提交。
2. 在git中文件index是个什么概念?
索引文件index:http://www.360doc.com/content/12/0419/17/1016783_204960412.shtml
理解下来,git add会把“工作目录”中的改变写到“index file”中,而git commit会把“index file”中的改变写到“git 仓库”。commit -a会直接把“工作目录”的改动写到“index file”和“git 仓库”.
git diff其实就是workcopy本地的内容和index文件比较,而不是和提交的HEAD比较,所以当本地执行完git add后,再git diff会是空的。如果想和HEAD比较,需要git diff HEAD.
那这个index文件存在哪呢?.git/index中二进制文件就是。下图可以看三者的关系:


3. stage/index/cache三者有什么关系?
git术语解释:http://blogread.cn/it/article/7581
可以理解为index是文件提交的暂存区名称,而暂存区的这些文件前缀都是"cache", 所以现在用cached来形容的命令,表示要操作的文件是存在于index中,而不是workcopy中。而staged和cached更像是同义词,也是git后面版本使用的名词。
4. git hard/soft/mix是什么概念?
首先,hard/soft/mix这三个名词只是用在git reset下;其次,reset的作用是重置HEAD指针到另外一个commit。比如git reset HEAD那什么事情也不会发生。
--soft, 只是将HEAD指针变更,而之前的original HEAD和current HEAD之间的变更内容都放在stage(index)中。

--hard, HEAD指针变更,同样重置index和workcopy,使得三者完全匹配,这是比较危险的,因为这会使得你丢掉work tree.

--mixed(default), 如果git reset不跟参数,那这个是默认,新的HEAD和index匹配,但是workcopy不会被修改,而是把original HEAD和current HEAD之间的变更保存到working copy中作为本地未提交、为stage的内容,用户可以重新修改,然后做commit。

5. HEAD
HEAD:当前分支的最近一次提交;
6. HEAD~和HEAD^
看上去挺复杂:http://mux.alimama.com/posts/799
[git]问题list的更多相关文章
- Git 子模块 - submodule
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...
- Git 在团队中的最佳实践--如何正确使用Git Flow
我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...
- Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...
- Git Bash的一些命令和配置
查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...
- 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net
1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...
- 史上最详细git教程
题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...
- [版本控制之道] Git 常用的命令总结(欢迎收藏备用)
坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...
- 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解
工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...
- git 命令
切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm ...
- git亲测命令
一.Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream bra ...
随机推荐
- Android ListView 多样式Item的一个注意点:(
闲来无事,在写一个多样式Item的ListView的Demo时,遇到了一个以前没遇过的问题; ╮( ̄▽ ̄")╭ 我们知道,ListView里可以有多种样式的item, 实现只需要重写: @O ...
- OD调试17
程序先出现一个nag 然后出现主窗口 然后出现第二个nag窗口 我们查个壳 没有壳 那就载入OD看看,继续用调用堆栈的方法 发现一直执行用的都是这一个call,最后执行到程序结束.之 ...
- 分布式blog系统 TFS总结
解决的问题 文件总量太大 一台服务器无法存放 只能放在网络集群中分节点存放 也就是通过屏蔽网络部分 形成一个“ one big CPU” 和 “one big disk” .Client只需要向 ...
- a标签不跳转
<a href="javascript://">父级菜单</a> 结果是这种写法在一些浏览器下不能到达预期效果(无跳转),我没有花时间把这种写法在主流浏览器 ...
- js点击空白处弹窗消失
$(document).mousedown(function(e){ var _list = $('#pop'); if(!_list.is(e.target) && _list.ha ...
- 对象关联(associated objects)
category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方法:associative,可以通过它来扩展属性:在iOS开发中,可能 ...
- Javaweb学习随笔_JSP的九大内置对象
JSP内置对象整理 1. 九大内置对象: out,request,response,session,application,page,pageContext,config,Exception. 1.1 ...
- Halcon pick_and_place_scara_stationary_cam.hdev程序学习
此示例显示如何基于由SCARA手眼校准确定的校准信息,使用SCARA机器人执行拾取和放置应用程序. 在第一步骤中,根据模型图像定义形状模型. 然后,基于该形状模型,在每个图像中搜索对象. 对于一个选定 ...
- Hadoop集群搭建安装过程(一)(图文详解---尽情点击!!!)
Hadoop集群搭建(一)(上篇中讲到了Linux虚拟机的安装) 一.安装所需插件(以hadoop2.6.4为例,如果需要可以到官方网站进行下载:http://hadoop.apache.org) h ...
- C#循环语句练习2
1.羽毛球拍15元,球3元,水2元,有200元,每一种至少买一件,问有几种买法? 2.洗发水15元,牙刷5元,香皂2元,有150元,每一种至少买一件,问有几种买法? 3.用100元钱买100只鸡,公鸡 ...