首页 › 分类存档 › git

Git工作流指南:集中式工作流

git-workflow-svn

转到分布式版本控制系统看起来像个令人生畏的任务,但不改变已用的工作流你也可以用上Git带来的收益。团队可以用和Subversion完全不变的方式来开发项目。
继续阅读 »

Git工作流指南

译序

工作流其实不是一个初级主题,背后的本质问题其实是有效的项目流程管理和高效的开发协同约定,不仅是Git或SVN等SCM工具的使用。

这篇指南以大家在SVN中已经广为熟悉使用的集中式工作流作为起点,循序渐进地演进到其它高效的分布式工作流,还介绍了如何配合使用便利的Pull Request功能,体系地讲解了各种工作流的应用。

行文中实践原则和操作示例并重,对于Git的资深玩家可以梳理思考提升,而新接触的同学,也可以跟着step-by-step操作来操练学习并在实际工作中上手使用。

关于Git工作流主题,网上体系的中文资料不多,主要是零散的操作说明,希望这篇文章能让你更深入理解并在工作中灵活有效地使用起来。
继续阅读 »

关于svn、git生成版本号脚本的改进

之前写了篇文章介绍使用脚本生成SVN、GIT版本号的SVN、GIT生成版本号,获取SVN版本号的方法有些不恰当,在不同版本的SVN上会出现问题。这里再对此进行完善。
之前的脚本是通过下面的命令获取当前的SVN的提交版本号:

示例可以参考前面写的文章,意思是获取第5行第3列的数字,这个数字就是提交代码的SVN号。关键的问题是,不同版本的SVN是不是都是第5行是版本号?非也。不同版本是不同的。所以上面的命令就有局限性。我尝试搜索相关资料,但没找到好的方法。于是只好继续沿用上面的方法。但多了对不同的SVN版本作判断。
下面给出结合了SVN、GIT两种版本号生成脚本。脚本中会判断是否存在.git或.svn目录,如果都存在,则将两个版本号写到一起,如只存在其中一个,则生成对应的版本号。
继续阅读 »

SVN、GIT生成版本号

代码管理较多的是使用svn、git这类的版本管理工具,版本号是一个重要的东西,自然地,如何让我们显式地看到版本号是十分重要的。一般地,会通过某种手段让当前代码的版本号声明为宏定义字符串,或打印在串口上,或传输到上位机显示。这里介绍了svn和git的版本号生成方式。
继续阅读 »

git分支管理策略

通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
下面我们实战一下–no-ff方式的git merge:
首先,仍然创建并切换dev分支:

修改readme.txt文件,并提交一个新的commit:

继续阅读 »

git修改Bug(分支)

软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交:
继续阅读 »

SVN迁移到Git的过程(+一些技巧)

关于在VCS中SVN和Git之间的迁移(Clone)这个部分网上已经有大批的文章介绍,而且都非常不错,能够满足我们的常见的需求,这里介绍的是我自己整理的一些技巧和使用中出现的一些问题和疑问。
阅读本篇文章,请先有一些Git和SVN的使用经验(又是经验,经验到底是什么?我都不知道)。

第一部分

今天的实验对象是,把http://code.google.com/p/jdbcdslog-exp/ 这个使用SVN管理的project迁移到Git上面,Git托管网站选择github。SVN迁移到Git,当然要清楚git svn 命令了。
首先请在github上面创建一个repository,这个简单,就不说了,然后就是使用强大的git了。

当然上面的两步,可以作一步处理
继续阅读 »

SVN 迁移到GIT

为改进开发流程,开发策略改为主干稳定策略,使用svn开发分支与测试分支必须不断切换,为改进切换问题研究git版本管理方法。

基本流程:

1.先用git svn命令把svn文件download到本地

2.git 推送到git版本服务器

1.物理环境
Git-server    Redhat    192.168.1.217
Svn-server    Redhat    192.168.1.200
继续阅读 »

如何用 Git 合并两个库(合并历史记录,解决冲突/改写路径)

本来已经不写文字博客了,一般心得都录成了视频(这在我看来是更好的方式),但是今天遇到一个关于 Git 的问题不太好重现也不便于录制视频,加上它本身很具有代表性也很有用,所以还是记录于此。

背景

一个中型规模项目,开始规划时就打算采用 C/S 架构,后端是单纯的 API 服务,前端在 Web 上搞一个 SPA,之后再搞其他端也就顺理成章了。只可以第一次弄没经验,有些细节最初没有考虑到。

创建项目的时候前后端真是完全分离的,分成了两个目录,创建了两个 repos。一开始只有一个人干的时候倒也没什么,开两个窗口切来切去也就罢了,后来一是部署起来麻烦,二来主要是其他开发者加入后,代码的版本管理、提交、合并、审核等等等等都变得越来越繁琐。
继续阅读 »

Git 换行符自动转换问题以及修改默认的编辑器nano为vim

以前都是在Linux上工作,所以在使用Git的时候没有碰到文件行分隔符的问题,现在突然转到Windows上使用Git,发现原来是Unix文件行结束符的文件在使用git diff的时候显示文件所有行都被修改。

导致这个问题的原因是Git自作聪明的“换行符自动转换”功能。要修复这个问题可以有几个方式
继续阅读 »