无法使用git send-email发送源代码和补丁

bzzcjhmw  于 2023-08-01  发布在  Git
关注(0)|答案(1)|浏览(115)

我在本地创建了一个目录:第一个月
我在/home/Tegra中创建了以下文件:

hello_world.c hello_world_1.c hello_world_2.c

字符串
每个文件都是递增修改的。我还创建了补丁:

diff -u hello_world.c hello_world_1.c > hello_world_1.patch
diff -u hello_world_1.c hello_world_2.c > hello_world_2.patch


1.现在我想先用git send-email发一封邮件到abc@xyz.org.邮箱,里面应该包含hello_world.c文件
1.然后,我想发送第二封电子邮件,其中包含hello_world_1.patch文件作为附件。
1.然后我想发送第三封电子邮件,其中包含hello_world_2.patch文件作为附件。

不幸的是,我甚至无法执行步骤1:

我的git已经正确配置了相关的smtp服务器tls 587端口。
我试着遵循命令:

git send-email --to abc@xyz.org --subject My Hello hello_world.c


我得到以下错误:

Cannot run git format-patch from outside a repository


仓库在哪里出现。我应该首先维护一个代码库吗?

编辑:步骤1:根据下面的评论,我们需要一个仓库:

1.在Github上创建一个空仓库:“MyRepo”
1.克隆到本地机器上。(使用git clone)
1.然后将第一个文件“hello_world.c”添加到Directory /MyRepo”中。
1.然后>>git add hello_world.c
1.然后>>git commit -m 'My First source'
1.然后>>git push -u original master
1.然后,我输入:git send-email --to=abc@xyz.org --subject="[asdasdas] assd asdasd”hello_world.c
现在我得到一个错误:

No subject line in hello_world.c ? at /usr/lib/git-core/git-send-email line 584

9rbhqvlz

9rbhqvlz1#

然后将第一个文件“hello_world.c”添加到Directory /MyRepo”中。
首先,确保你在克隆的空仓库中确实提交了任何东西。

git add .
git commit -m "new commit"
git push

字符串
第二,git send-email doc确实提到:

--subject=<string>


指定电子邮件线程的初始主题。仅当--compose也被设置时才需要
确保使用--compose
此格式要求文件的第一行包含“Cc:”值,第二行包含消息的“Subject:”。
这将适用于.patch,而不是源本身。
请参阅git format-patch和“How to send patches with git-send-email”以获得更完整的示例:
对于最后一次提交:

git send-email -1  --to=abc@xyz.org --subject="[asdasdas] assd asdasd"


第三,更简单的解决方案是use git bundle。这会生成一个文件,你可以以任何你想要的方式发送,接收者可以从中提取/克隆。它充当(那个文件)作为一个裸git存储库。

相关问题