我曾经遇到过Windows的商业工具,它允许你在源代码控制之外“隐藏”代码更改,但现在我不记得它的名称了。它会将当前版本的文档复制到备份位置,并在源代码管理中撤消签出。然后,您可以稍后重新引入备份的更改。我相信它适用于多个源控制系统。有谁知道我想描述的是什么节目?
我提出的问题的目的有两个:第一是找到一个很好的方法来做到这一点。第二个原因是因为我不记得那个darn程序是什么,这让我发疯了。
答案 0 :(得分:6)
您可以使用git stash
暂时删除当前的更改集:http://git-scm.com/docs/git-stash。这会在本地存储您的更改(不提交它们),并允许您稍后将它们重新引入工作副本。
Git不是商业广告,但很快就会从Subversion这样的工具中获得很多转换。
答案 1 :(得分:1)
我自己并不是git用户,但我的几位同事都是,并且他们似乎正是为了这个目的。他们使用各种git包装器对他们公司使用的SCM系统进行“真正的”更改,但是在他们的驱动器上保留私有git存储库,他们可以保留他们不一定要提交的更改。
当他们准备好承诺公司的SCM服务器时,他们只是合并并提交上游。那是你想要做的吗?
答案 2 :(得分:1)
将私人更改存储在私有分支中是不是更好的主意,例如, svn switch
可以在需要时更改为主分支?
答案 3 :(得分:1)
Mercurial有Shelve Extension可以做你想要的。
如果您真的想要,您甚至可以从单个文件中选择要搁置的更改。
答案 4 :(得分:1)
我认为您所考虑的产品是SmartBear Software的“CodePickle”。但是,它似乎已停产。
似乎用于您正在寻找的功能类型的术语似乎是“搁置”。
微软的团队系统有一个“搁置”功能。
Perforce有几个不受支持的脚本,包括p4tar和p4 shelve
Subversion有几种“搁置”工具,但我不知道它们有多强大。
答案 5 :(得分:0)
在Darcs中,您要么不记录要隐藏的更改(要求您在录制新修补程序时单独包含每个更改),要么将它们放在不推送的单独修补程序中上游。
无需将本地私人回购与公共/上游/其他私有回购完全同步。您可以选择想要推送到其他地方的补丁。选择补丁也可以使用模式完成,因此如果您采用隐藏补丁的命名约定,您可以轻松地推送所有内容。
这样,您的私人更改仍处于修订控制状态,但在您希望它们发布之前不会共享。
答案 6 :(得分:0)
我发现了一篇关于使用Subversion分支获取类似功能的优秀文章: Shelves-in-subversion
答案 7 :(得分:0)
然后是旧的后备......'补丁',甚至旧的“将所有内容复制到另一个位置,然后还原”。
这两种方法都不如使用大多数VCS系统中的工具那么方便。