我正在将我们的存储库移动到git。在过渡期间,工程师仍将提交到Perforce存储库。虽然工程师仍在工作,但我将切换系统以使用Git存储库。因此,我一直在执行以下操作以使存储库保持同步:
rm -rf family
git clone ssh://git@example.com:7999/project/family.git
cd family
git p4 sync //depot/project/family@all
git rebase remotes/p4/master
git push -f
这很好用,但我们的一个工具需要提交哈希保持不变;上面创建了新的提交,因此创建了新的提交哈希。 git-p4
和git
甚至可以满足我的需求吗?如果是这样,我想象它需要魔法update-refs
等等,而且当谈到git
管道命令时,我仍然处于学习曲线上。
答案 0 :(得分:2)
以下适用于我:
rm -rf family
git clone ssh://git@example.com:7999/project/family.git
cd family
git update-ref refs/remotes/p4/master $(git log -1 --format='%H')
git symbolic-ref refs/remotes/p4/HEAD refs/remotes/p4/master
git p4 sync //depot/project/family || true
git p4 rebase
git push