Q&A

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • git-merge完全解析 Git的git-merge是在Git中频繁使用的一个命令,很多人都觉得git合并是一个...
    Chuckiefan阅读 406,425评论 13 111
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,882评论 9 163
  • 第一次见到青色的樱花,有点涩涩的感觉。有点青涩,却又带着点诱惑。不经让人喜爱万分。 一直都很喜欢樱花,可惜一直没有...
    遇之幸之阅读 285评论 2 1
  • 作者:Scholer's Blog原文地址:http://0x1.im/blog/php/tidy-your-ph...
    IT程序狮阅读 790评论 0 4
  • 读到你的温暖 我却看不见你的心怀 念着你的笑脸 那里盛满了怜惜 风儿轻敲着玻璃 黎明在沉睡里醒来 岁月在刹那间捡拾...
    田萍阅读 479评论 3 12

友情链接更多精彩内容