在我的大多数项目中,个人或团体,我发现我只使用版本控制来简单地提取最新的更改并发布我自己的代码。
但是,我知道版本控制还有很多,我不使用分支和其他强大功能。
有人可以以更强大的方式向我提供有关如何使用版本控制的建议吗?
我主要讨论的版本控制系统是SVN和Git。
答案 0 :(得分:13)
你可以从这里开始: Red book
您为发布的内容创建标签;你为正在处理的事情创建分支,可能是错误的/不稳定的。你的后备箱应该尽可能稳定(男人,听起来不对)。
答案 1 :(得分:11)
掌握合并和分支。我发现版本控制的大多数用途令人惊讶的是,90%的人使用它时不知道如何使用它来支持两个不同的分支,同时当它们检查更改时将它用作线性版本控制系统。版本控制的真正强大之处在于它允许您同时有效地维护系统的两个独立版本,这在您必须同时支持生产版本和开发新版本的软件时会派上用场。学习如何使用像Subclipse这样的工具(以及Maven的Eclipse插件)或像Git这样的工具来合并分支之间的变化是我希望更多人使用版本控制知道如何做。
答案 2 :(得分:8)
git ready有很多关于使用Git的提示,从初学者到高级。另请参阅Git Wiki了解有关如何使用Git的各种文档和提示。
以下是一些有待学习和不明显的事情。
重新排列一系列提交:
git rebase -i <base-rev>
查找哪个提交破坏了您的单元测试,在本例中为make check
;您可以使用任何其他命令来检查某些特定的构建失败或错误,并在失败时以非零状态退出:
git bisect start HEAD <known good revision>; git bisect run make check
显示有关遥控器及其分支的有用信息:
git remote show <remote>
Git中的分支比任何事情都容易:
git checkout -b branch-name master # create a new branch, starting it at master
git pull origin master # merge in changes from the master branch on origin server
git checkout master; git merge branch-name # merge changes you made on the branch
git branch -d branch-name # once you're done with the branch
如果您想在处理分支时与其他人共享分支,或将其推送到服务器进行备份:
git checkout branch-name # assuming it's already been created
git push origin branch-name # push the branch to the origin server
答案 3 :(得分:4)
考虑将构建系统置于修订控制中。您的工具链本身可能会随着时间的推移而发生变化,配置开发人员机器变得简单而不是经历考验。我还发现版本控制测试或构建工件会迫使您进入自动化学科。考虑存储软件的其他技术的方法(要求,里程碑等)。如果你有外部工具与你所有的力量斗争复制。考虑记录构建系统中的构建环境,并使猴子可以轻松地启动提取,构建,打包,广告,测试,打包,签名和部署。
答案 4 :(得分:2)
我发现版本控制对于隔离和修复困难的bug非常有用。具体来说,通过更新到以前的版本,我可以找到何时引入问题,然后找出两个版本之间的更改,并轻松地将问题隔离开来。
答案 5 :(得分:2)