git p4 submit --shelve
在本地git repo中获取您提交的更改,并将它们放入更改列表X并进行搁置。
假设我对搁置的更改进行了一些代码审查,因此我本地git仓库中的文件与更改列表X中的文件不同。如何将更改列表X中的更新更新到我的本地git仓库中?
答案 0 :(得分:1)
我做了一个modified version of git-p4.py来支持这个。您创建的文件具有每个搁置的更改列表的更改编号。然后你就跑git p4 sync --changesfile <filename>
。
唯一的问题是,这会将更改导入您的p4/master
分支,因此git-p4
会认为这些更改已提交。如果你使用它,你必须将一些本地git分支硬重置到新导入的提交,然后将p4/master
ref硬重置回导入之前的状态。它还将[git-p4: depot-paths = ...]
信息添加到提交消息的底部,因此它不适合直接运行git p4 submit
。您可以编写某种git commit过滤器来批量删除它们。
尽管如此,我认为这比手动处理p4 unshelve
,p4 diff -dau > foo.patch
和patch -Npx -i
更好。
答案 1 :(得分:0)
您可以生成差异,然后将其应用到您的git树。 (生成差异的最简单,最可靠的方法可能是将变更集取消搁置到干净的Perforce客户端,然后执行p4 diff -du ...
。请注意,这对添加或删除的文件不起作用。)< / p>
将来,您应该避免这样做。首先使用git-p4
的关键是主要使用git,但要与Perforce同步更改。因此,您的git环境应该是您的“主”环境,并且您的Perforce客户端应该仅用作Perforce服务器的临时区域。