34

各自的概念是什么?

什么时候可以搁置更改而不是签入?

4

5 回答 5

37

搁置意味着更改被搁置以供以后处理。

签入意味着更改可供团队的其他成员使用,将在构建中并最终发布。

非常不一样。将搁置视为您未完成任务时进行上下文切换的工具。签到意味着您已经完成(至少完成了一部分)。

于 2009-02-05T16:56:59.773 回答
12

当您想要保存所做的更改时搁置您的更改,但需要返回到以前的版本以进行您想要部署的其他更改(可能是错误修复),而不需要您当前正在处理的更新。由于您通常会定期检查,因此我发现这种情况很少发生 - 就像我刚刚部署到 QA 框并立即发现错误一样。我将搁置当天的更改,使我回到 QA 部署的版本,进行更新,然后取消搁置我的更改——根据需要合并两者。再长一点,您可能会希望查看以前的版本和分支。不过,我很高兴听到搁置被证明更有用的其他经验。

于 2009-02-05T17:00:49.813 回答
6

其他用户可以通过搜索下载您的搁置集,因此这是传递代码以进行评论的好方法。但是,如果您尝试取消搁置已签出的代码文件,则会收到错误消息,因此您需要准备好干净的环境。

如果我正在处理我无法签入的大事,我经常在一天结束时搁置我的更改。这样,如果我的电脑在一夜之间死机,我就可以在服务器上进行备份。

于 2009-02-05T17:08:49.050 回答
3

达西明白了。您还可以将搁置视为大部分不公开可见的私有分支。Shelvesets 也可以完全删除,不像删除签入的代码。如果你删除一个搁置集,它就永远消失了。

于 2009-02-05T17:03:44.770 回答
0

上面的每个人都说了这么多,我从中学到了分配。

Just to add my experience, correct me if I am wrong. In a project, we have a configuration file mypc.json specific to each PC of the developer. We usually override it when running server locally. Other team members have the same file name with different configurations in it. No one wants their file to be pushed with the same name to the development branch. So I use shelve to save these type of changes. Whenever I need these configurations I can easily apply changes from shelve and my environment configurations are back in my project.

于 2017-01-17T14:53:29.860 回答