TL;DR 对已发布到远程仓库的分支进行衍合操作(rebase),会产生重复的提交记录,本文举例描述这个问题。
git merge 与 git rebase 命令都用来合并代码,如果不需要审查提交记录,两者都可以无脑操作,相互替换;如果要生成有条理的提交记录,前者会记录多条开发分支扰乱视线,因而推荐使用后者。但后者要是使用不当,会生成令人糊涂的提交记录。这点官方文档里有描述,但我嫌它所举例子有点牵强,所以自己举例说明。
继续阅读 »
git简介
git官网有全套教程和说明,有兴趣的自己研究。
如果你不适应命令行,可以使用GUI工具,如SourceTree。
官方文档
中文官方文档。
官方文档非常详细,需要仔细阅读。
常用命令
继续阅读 »
近两个月由于个人处于新环境、新项目的适应阶段,没怎么提笔写些文章。中间有好几个想法想记录下来分享,但受限于没有很好的时间段供自己总结思考(也可以总结为间歇性懒癌和剧癌发作),便啥也没有更新。借这个周末闲适的下午和明媚的阳光,决定把近来项目上的CI/CD(持续集成/持续交付)策略以及git分支模型和以前的项目做一下分析比较,希望对各位有所帮助,也能有所思考,尤其是那些期望搭建项目部署流水线或者想了解git分支模型的开发、运维人员。
继续阅读 »
window 上面的命令行一直都非常丑陋 (看我用词多么强烈)~
今天上午终于因为看 Git Bash 配色而双眼变得模糊了, 于是上网搜了一下有没有结局方案, 然后就发现了这个 github/mintty-colors-solarized, 但这个项目是好几年前的了, 我还是怀着试试看的态度尝试了一下.
我发现了, 干程序员别的可能不行, 但是尝试的能力还是有的, 经常为了找一个新的框架, 或者要写一个组件而去把所有相关的项目全看一边, 然后才发现不行~
但是今天老天并没有调戏我, 先说一下修改的过程吧~ 在 Git Bash 里面输入,
cd ~
vi .minttyrc
开始编辑它的配置文件, 不妨输入这些东西,
继续阅读 »
master: 默认开发分支
origin: 默认远程版本库
Head: 默认开发分支
Head^: Head的父提交
创建版本库
$ git clone #克隆远程版本库
$ git init #初始化本地版本库
继续阅读 »
以前用git 不是非常优雅, 经常用git push -f, 然后在别的地方更新时就会出现conflict,然后要很麻烦的手动处理。
最近找到了比较一个优雅的方法:
git fetch origin
git reset --hard origin/master
继续阅读 »
git常用命令
```
//新建一个记录提交操作的文档
touch README.md
//初始化本地仓库
git init
//添加
git add README.md
//提交到要地仓库,并写一些注释
git commit -m "first commit"
继续阅读 »
使用git archive可以将传入的文件列表打包为一个zip档案。对于一些大系统,如果只是修复bug,可以做到热替换的话(比如php,js等解释型语言),可以使用此命令将修改的文件添加到zip档案,以提交局方升级。
more
将整个仓库打包
继续阅读 »
活用git rebase -i 就可以解决绝大部分补丁整理的问题。
假如我们有以下补丁:
=========
commit 03bb9a14f5ea00d51d2edc14587b37b1ab9ccf5d
Author: YongHao Hu christopherwuy@gmail.com
Date: Fri Jul 10 17:23:02 2015 +0800
msvcp110: Add tr2_sys__Unlink implementation and test.
commit 24137cd93c783ced61ca152cb4384287e6859ba4
Author: YongHao
继续阅读 »
我们的博客可能面临评论系统不可用、分享插件不可用、主题升级的问题。
如果你是直接把代码copy到你的博客目录里面,那么你想修复这些问题,就会代码灾难性的后果。
使用git submodule能很好解决这个问题。
more
继续阅读 »