git
liuqiaoyu080512
这个作者很懒,什么都没留下…
展开
-
git版本管理的优点
如果软件规模比较大、或者多人开发,应该进行版本管理以避免源码的混乱。 之前还没用过 git 的时候,我以为版本管理就是给自己的程序自动升级版本号的软件(从 2.6.39 自动升级到 2.6.40),以至于当我看了 git、svn、cvs 的简介后,一度因为它们没有提供这样的功能而耿耿于怀。 版本管理软件其实是修改管理软件,它把程序源代码的两个版本之间的差异当做砖垒起来,并为我们提供管理原创 2013-02-07 17:03:36 · 3293 阅读 · 0 评论 -
git如何知晓文件差异
求两版本之间的差异是一个动态规划问题 git 能发现任何的改动,但它是怎么发现的呢?难道它监控了我们对文件的读写操作? git 才没这么鸡冻……它是通过比较新旧版本,掐指一算算出来的O(∩_∩)O。 首先假设我们只能通过以下3个操作将旧版本演化为新版本:copy —— 复制旧版本当前行到新版本insert —— 在新版本中添加一行delete —— 跳过旧版本当前行 那么原创 2013-02-12 11:39:16 · 4763 阅读 · 4 评论 -
安装git和创建版本库
安装 git 首先介绍一下 git 是怎么诞生的:2005 年,当时 linux 内核使用商业软件 BitKeeper 进行版本管理。Samba的作者Andrew Tridgell 试图尝试对 BitKeeper 反向工程, 以开发一个能与 BitKeeper 交互的开源工具, 因此激怒了 BitKeeper 的东家 BitMover, 要求收回对 Linux 社区免费使用 BitK原创 2013-02-24 14:24:15 · 6986 阅读 · 1 评论 -
.gitignore
git 可以管理所有文件的变更, 但并不是所有文件都有意义。大部分二进制文件没有意义 比如说 VC 工程的 Debug 和 Release 文件夹下的文件, 或者 java 项目的 bin 文件夹中的 class 文件, 这些文件都是基于源代码生成的, 只要有源代码就能生成出来,所以版本管理的时候应该忽略它们。有些文本文件也没有意义 比如说 VC 工程中的 .plg 文原创 2013-03-07 21:17:34 · 29130 阅读 · 8 评论 -
git版本管理的主要操作
这一篇就来介绍版本管理的主要活动——开发过程中的 git 操作。各种操作都只给出一个简单的例子让大家熟悉怎么使用,至于经验之谈就留待后作了。 首先,演示一下怎么基于 github 进行协同开发。 其实就是要把各个开发者都加入到版本库的开发者列表中。为了演示,我申请了两个 github 账号,一个在本机 win7 中使用,一个在虚拟机 XP 中使用,这样来模拟两只程序猿的协同开发。我照原创 2013-02-27 19:17:31 · 4709 阅读 · 0 评论 -
commit 和 push 的临界点
估计很多使用 git 的同学把握不住什么时候应该 commit, 什么时候又应该把未提交的 commits 都 push 上去, 今天我就把我的理解说一说。 首先,有一条原则应该是要遵循的: 提交描述 = 提交的修改。 凡是违背这一原则的都构成欺诈:提交描述 这种情况是这次提交中 实际修改的内容比提交描述中介绍的要多, 难道你想添个后门?提交原创 2013-03-12 20:46:20 · 8266 阅读 · 2 评论 -
修改任意 commit
目前在公司实习,两周了, 很多东西要学,博客更新慢,敬请见谅! 上一篇博客中提到了未 push 的 commit 都可以修改, 这一篇就来演示一下。修改上次提交的 commit git 直接提供了修改上次提交的 commit 的选项。继续 Hello-World 项目,上次 README 经过两次提交, 变成了这个样子:现在我想修改第原创 2013-03-17 19:59:04 · 2339 阅读 · 0 评论 -
git 两个给力的应用场景
git 能给开发者带来不少便利,这里我就讲两个场景。revert revert 是恢复的意思,用过 svn 的同学应该都对 svn 的 revert 操作赞不绝口:它能把未提交的修改一键丢弃。它的应用场景就是我在git版本管理的优点中提到的,我们在源码中添加一些自测代码如 printf、System.out.println来对新增加的功能进行正确性测试,测试正确了之后我们可以用 svn原创 2013-03-21 19:28:23 · 2106 阅读 · 0 评论