作者:mobiledu2502902687 | 来源:互联网 | 2023-02-05 14:29
我想将两个文件从一个存储库移动到另一个存储库.这些文件最初添加为:
/src/init/Price.cs
/tests/init/PriceTests.cs
这两个文件后来被重命名为:
/src/init/PriceValue.cs
/tests/init/PriceValueTests.cs
然后转到:
/src/moved/PriceValue.cs
/tests/moved/PriceValueTests.cs
我试图通过这种描述为这些文件创建一组补丁,但我不确定如何传递文件存在的六种不同路径.
我设法找到影响PriceValue.cs
(跨重命名和移动)的所有提交ID ,但将这些ID传递给Git失败,并显示以下错误消息:
$ git format-patch -o /tmp/pricevaluepatches $(git log --all dfeeb 6966b 9f882 …)
-bash: /usr/local/bin/git: Argument list too long
那么,我如何为此创建一组补丁,它只包含对所提到文件的更改,但是在一个重命名和每个文件的一次移动中包含它?
1> Nils Werner..:
您可以获取一些特定文件的补丁,但不能早于提交sha1
使用
git format-patch sha1 -- file1 file2 ...
任何文件都可以是旧文件(在重命名之前)或现有文件.
如果你想要提交所有提交,sha1
你可以使用
git format-patch --root sha1 -- file1 file2 ...
所以在你的情况下,所有提交到HEAD
你的六个文件的now():
git format-patch --root HEAD -- /src/init/Price.cs /src/init/PriceValue.cs /src/moved/PriceValue.cs /src/init/PriceTests.cs /src/init/PriceValueTests.cs /src/moved/PriceValueTests.cs