在使用P4进行远程提交时,如何为本地提交设置Git?

Sky*_*Sky 7 git version-control perforce git-p4

我工作的地方使用Perforce环境但我们不允许在我们的功能完成并准备好进行测试之前办理登机手续.我需要能够进行本地提交,因为有时我已经检查了超过50个文件一周而没有对我的更改进行任何版本控制.

Git符合我的目的,但我不确定如何将其设置为与我的其他环境最佳集成.

我的目标是:

  • 在处理某项功能时,我希望能够完全忽略Perforce并尽可能多地编辑和提交(在Git中).
  • 在提交功能之前,我需要能够进入P4V或P4Win以区分文件并确保一切都是最新的,并且在测试之后我希望我的所有更改都在一次提交中.

看起来在我的本地工作区的根目录下创建一个git存储库会起作用,但我有一些问题......

  1. 此存储库中有大量文件,至少初始提交git正在爬行.
  2. 当我从Perforce"获取最新信息"时,我需要能够轻松更新git存储库
  3. 在编辑之前,我不想在Perforce中检查每个文件,也不想在Perforce中执行强制同步,因为它们是未检出的可写文件.

谁能给我一些关于此的提示?我一直在看git中的子模块作为一种可能减少git repo大小的方法,因为perforce repo的很多部分我都不需要进行版本控制.

Kar*_*ldt 0

我在使用 StarTeam 和 git 时也做同样的事情。我不熟悉 perforce 语法,但概念应该匹配。

首先,最初的 git 提交总是很慢。此后,可能需要 5-10 秒来扫描更改的文件以进行暂存,但大多数情况下提交应该几乎立即发生。对于上下文,我们的代码库大约有 50,000 个版本化文件。

master与 StarTeam 保持同步,但不直接在其中进行任何开发工作。我执行git checkout master,然后执行 StarTeam 更新,然后执行 git add 和提交。

然后,对于我的工作,我创建一个新分支,在其中完成所有工作,在 中进行另一个 StarTeam 更新master,并在提交到 StarTeam 之前将我的功能分支合并回其中master。因此,StarTeam 的签入和签出均在 中完成master,并且开发始终在其他分支中完成,这使 StarTeam 更新保持干净。

这种混合方法还有其他一些好处,例如能够将部分工作暂时搁置以进行代码审查、现场问题或其他任何事情。我目前有 5 个处于不同使用状态的 git 分支。放入临时调试代码也非常好。