Q&A

作者: lemonline丶 | 来源:发表于2017-03-30 12:23 被阅读0次

FAQ


这个地方,我会记录我在使用git或github中遇到的一些问题。

1. 在git bash 中如何退出vim编辑器?

2017/1/18
问题描述:
在使用git commit git merge --no-ff xxx 等指令时会跳转到一个“编辑器”(vim编辑器),然后我发现我没法编辑,也不知道怎么退出,今晚(2017/1/18 20:54:21 )搞清楚了这个问题。

问题解答:
其实按 o i a 都可以进入编辑模式,接下来你可以对内容进行修改,修改好后
方法一:按住Esc再按两下大写Z (注意是大写) 就可以退出了,这种情况下是保存并退出。
方法二:按Esc退出编辑模式,如果想退出编辑器,按Shift+;(其实就是输入个 “:" 冒号 ) ,接下来可输入q!(不保存并退出)或 wq!(保存并退出)。
以上两种方法都亲测有效。
嗯 就是这样。


2.git merge --no-ff 是什么意思?与git merge有什么区别?与 git merge --squash 有什么区别?

2017/1/18
问题描述:
之前因为遇到上一题的缘故,我在合并的时候一直用git merge 于是在看graph的时候 发现和我想象中的不一样,分支去哪了?

问题解答:
--no-ff指的是强行关闭fast-forward方式。

fast-forward就是直接使用git merge的方式,当条件允许的时候,git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit

git merge --squash 是用来把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用--squash进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并。

总结:
--no-ff:不使用fast-forward方式合并,保留分支的commit历史
--squash:使用squash方式合并,把多次分支commit历史压缩为一次
看下图就很明白了

看图
本题解答参考 segmentfault

相关文章

  • 《拖延心理学》1/2

    以Q&A笔记的形式进行分享,什么是Q&A笔记呢? Q&A是由“问题部分”和“答案部分”组成, 以一问一答的形式对知...

  • [ WWDC2018 ] - WWDC Lab:哪些是我们最关心

    WWDC Lab Q&A WWDC期间每天都会有苹果工程师现场答疑活动,这种活动叫Lab。以下是我们的Q&A Q:...

  • QReply - Knowledge world

    Quest your answer is a Q&A platform that empowers people ...

  • 胶原蛋白Q&A

    常见补充方式有如下几种: Q&A

  • Q&A的重要性

    Q&A的重要性Scout Q&A是Listing权重的重要影响因素,而不仅仅是标题、search terms和re...

  • SQL|创建表 JOIN 视图

    Q&A:如何实现多个表链式连接?

  • LayaOne Sharding

    Sharding Q&A Your paper mentioned there is "dynamic shard...

  • Q&A

    Java基础 List 和 Set 的区别 基础 均继承接口Collection(除这两还有queue)、 Lis...

  • Q&A

    1、为什么偏爱列向量?

  • Q&A

    1. 问:jvm内存模型 答:https://www.cnblogs.com/SaraMoring/p/57137...

网友评论

      本文标题:Q&A

      本文链接:https://www.haomeiwen.com/subject/vswuottx.html