Perforce相当于git本地提交

use*_*702 11 git perforce branch p4v shelve

我在使用Git一年后才开始使用Perforce.在perforce中我的分支是否有任何等效的git本地提交.

从本质上讲,如果我想处理可能需要撤消和重做我的特定更改的复杂任务,那么在Perforce中有什么方法可以实现这一点吗?我在Git中这样做的方法是将我的更改提交到分支,并在合并到master之前在分支中进行多次提交.

Sam*_*ord 5

在Perforce中执行此操作的经典方法是完全按照您的说法进行操作 - 创建分支,提交到该分支,然后将其合并.与Git的一个区别是,在您的分支上进行的每个更改都是永久性的,后来的更改建立在早期版本上 - 您不会通过从历史记录中删除它们来撤消先前的提交,您只需创建其他版本.另一个变化是,当您合并回来时,您将在目标分支上创建一个新的更改列表,其中包含您从源中合并的所有更改的总和 - 因此,而不是将更改压缩在您的分支上,合并时压缩更改.您可以分阶段进行合并,甚至可以在分支上发生更改时以不同的顺序进行合并,这样主分支上的历史记录可能与分支中的历史记录不同(但它会保留指向分支的指针)以及).

Perforce目前的公开测试版(2015.1)提供了一种更类似于Git的方法,在这种方法中,您可以拆分本地Perforce存储库,进行更改,并可能在将历史记录推送回共享存储库之前重写历史记录 - "本地"历史记录在共享服务器上的任何位置都不一定可见,因为您可以选择重写它(而任何分支上提交给中央服务器的任何历史记录都是永久的,除非管理员将其删除).有关Perforce新DVCS功能的更多信息(同样,这仍处于测试阶段):http://www.perforce.com/perforce/r15.1/user/dvcs_getting_started.pdf


moh*_*ied 5

我认为p4 shelve这里可能对你有用。

更长的答案:

p4 的工作方式是您必须使用 解锁文件p4 edit,或使用p4 add. 这将创建一个更改列表,其中包含为您的下一次提交暂存的所有文件。

p4 submit 然后可用于将更改列表中的所有更改(在 git 术语中)推送到存储库/仓库。

现在,如果您不想立即提交,可以使用p4 shelve. 这将为您的更改列表创建一个本地检查点,您可以返回或撤消该检查点。您也可以一个接一个地创建多个搁置副本。您可能可以使用此命令复制 git commit 的所有功能。

有关p4 shelve更多详细信息,请参阅命令参考。