Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 版本控制是关于部署历史记录还是开发历史记录?_Version Control - Fatal编程技术网

Version control 版本控制是关于部署历史记录还是开发历史记录?

Version control 版本控制是关于部署历史记录还是开发历史记录?,version-control,Version Control,。。。比如说我检查了一些代码,做了一些开发或重构之类的事情。。我是不是只有在我完全高兴的时候才把它寄回来。。。如果我在编写代码时改变了对东西的看法呢?我可以回到以前的本地版本吗?有没有我当地的发展历史 版本控制是关于部署历史记录还是开发历史记录?取决于您、您的团队和您的工具。 例如,对于集中式版本控制系统,您不应该提交“损坏”或“不完整”的内容,而对于分布式版本控制系统,您可以提交,如果提交,您将获得优势。有关更详细(和有趣)的示例,请参见此处:简短回答。两者都有 由于许多原因,您需要能够回滚到

。。。比如说我检查了一些代码,做了一些开发或重构之类的事情。。我是不是只有在我完全高兴的时候才把它寄回来。。。如果我在编写代码时改变了对东西的看法呢?我可以回到以前的本地版本吗?有没有我当地的发展历史


版本控制是关于部署历史记录还是开发历史记录?

取决于您、您的团队和您的工具。
例如,对于集中式版本控制系统,您不应该提交“损坏”或“不完整”的内容,而对于分布式版本控制系统,您可以提交,如果提交,您将获得优势。有关更详细(和有趣)的示例,请参见此处:

简短回答。两者都有


由于许多原因,您需要能够回滚到早期版本。

这取决于您的版本控制系统的使用方式

根据我的经验,大多数公司在大多数意义上都将其用于部署历史。也就是说,只应输入工作代码。如果您签出某个内容,然后正在添加一个尚未工作的代码块,那么将其签回意味着有可能有其他人签出损坏的产品


我遇到过这样的情况:公司使用它,每天早上你都要签出你的代码,不管你在一天结束时处于什么状态,你都要签回代码。这样,如果其他人想要添加他们可以添加的内容,不管它当前处于什么状态。。。虽然我能从逻辑中看出一些道理,但这对我来说并不适用。

我认为正确的答案可能是“视情况而定”:

如果您在生产环境中使用版本控制,那么它是关于部署历史的。如果你在开发中使用它,它是关于开发历史的。如果您在这两个地方使用相同的版本控制系统(这并不少见),那么它可能会因分支而异。例如,您将拥有与开发相关的主干和功能分支,然后您将这些分支分为发布分支,这些分支将被放到生产系统中。发布分支的历史记录显示部署历史记录

一些版本控制系统,比如git和mercurial,我认为SVK(一种奇怪的修改过的SVN)允许您拥有本地存储库,您可以从中获取以前的本地版本。好吧,如果你至少没有将你的变更提交给你的本地回购协议,这些都不会允许你回滚。Eclipse还允许您独立于版本控制系统回滚到以前的版本

。。。比如说我检查了一些代码,做了一些开发或重构之类的事情。。我是不是只有在我完全高兴的时候才把它寄回来

这是个人喜好的问题。确保您可以签入未编译的代码或您添加的功能不完整的代码。但是,对于访问您的存储库的任何其他人(如果有人)来说,签出不起作用的文件可能是一件痛苦的事情。我认为这个问题的答案很大程度上取决于项目的团队规模和团队的个性

有没有我当地的发展历史

取决于您使用的特定源代码管理系统。Git允许您跟踪本地更改


版本控制是关于部署历史记录还是开发历史记录


开发历史,虽然我看不出是什么阻止了您在每个版本中将可部署文件和配置文件检查到存储库中(但是可能有更好的系统来跟踪这类事情)。

关于签回,何时提交取决于团队的策略。一些团队使用持续集成工具来确保代码的当前版本能够编译并通过测试,这意味着您通常不应该提交损坏的代码。在分支机构工作可能会降低这种情况下失去工作的风险

对于本地历史,虽然有些IDE维护自己的本地历史,但您不能通过版本控制免费获得此信息。

er,两者都

你应该随时检查你的工作是否稳定——这在开发过程中会发生很多次

所有源存储库都有一个标签版本——您可以使用它来标记最终部署的发布版本


因此,开发主要是释放,但本质上也是释放。

两者都有,但主要是开发历史。主干不需要一直处于可部署状态——那太疯狂了


而是在准备部署之前提交。然后,标记/标记/分支存储库以指示部署了哪些代码。

认为应该这样做。然后我同意同样的想法。尽管如此,我这样做的方式是使用我的主干作为我的主要职责,这是“生产”安全的,而我的分支是我进行所有开发的地方。这样,我可以随时检查我的所有更改,而不必担心它将投入生产。当我完成了那个特定的增强后,我会从那个分支合并到主干。

“版本控制是关于部署历史还是开发历史?”

两者都有

开发人员的修订/文件版本和部署的分支/标记/标签

这在很大程度上取决于组织的策略

至于本地工作副本和修订版-如果你有一个VCS,它允许私人工作区/分支机构,然后进行升级,或者是一个分布式系统,那么如果你签入了错误的代码,并且你可以使用VCS来处理所有你想要的私人事务,这其实并不重要

对于集中式系统,您可能不希望签入未经测试/不可编译的代码


同样,这取决于您的组织

版本控制是关于存储信息的安全和并发修改。即使使用版本控制软件,您仍然需要定义什么是版本以及什么是部署单元。没有it,版本控制只提供basi