在我的大多数项目中,个人或团体,我发现我只使用版本控制来简单地提取最新的更改并发布我自己的代码.
但是,我知道版本控制还有很多,分支和其他强大的功能我不使用.
有人能给我一些关于如何以更强大的方式使用版本控制的建议吗?
我主要讨论的版本控制系统是SVN和Git.
你可以从这里开始: 红皮书
你为你发布的东西创建标签; 你为正在处理的事情创建分支,可能是错误的/不稳定的.你的后备箱应该尽可能稳定(男人,听起来不对).
掌握合并和分支.我发现版本控制的大多数用途令人惊讶的是,90%的人使用它时不知道如何使用它来支持两个不同的分支,同时当它们检查更改时将它用作线性版本控制系统.版本控制的真正强大之处在于它允许您同时有效地维护系统的两个独立版本,这在您必须同时支持生产版本和开发新版本的软件时会派上用场. .学习如何使用像Subclipse这样的工具(和Maven的Eclipse插件)或像Git这样的工具来合并分支之间的变化是我希望更多人使用版本控制知道如何做.
git ready有很多关于使用Git的技巧,从初学者到高级.另请参阅Git Wiki以获取有关如何使用Git的各种文档和提示.
以下是一些有待学习和不明显的事情.
重新排列一系列提交:
git rebase -i
在这种情况下,查找哪个提交破坏了您的单元测试make check
; 您可以使用任何其他命令来检查某些特定的构建失败或错误,并在失败时以非零状态退出:
git bisect start HEAD; git bisect run make check
显示有关远程及其分支的有用信息:
git remote show
在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