git从unpushed提交创建补丁

在远程工作时我无法推送,因此我想从尚未推送到我的开发分支上的所有提交创建单个补丁,以便通过电子邮件发送。 我怎么做?


git format-patch <commit-ish>为自你指定的提交后所做的每一次提交创建一个补丁文件。

所以,为了导出所有的unpushed提交,只需放置即可

git format-patch origin/master -o patches/

并将它们全部输出到patches/目录中。

如果你想有一个文件 ,添加--stdout

git format-patch origin/master --stdout > patches_$(date -I).patch

这将创建一个名为patches_2014-10-03.patch (或其他日期)的文件,其中包含所有的修补程序。 注意: patch或其他简单的修补程序应用程序无法处理生成的文件。 它只会与git am工作。


边注:
一个更容易(也更强大)的事情可能是将你的回购副本保留在拇指驱动器上或类似的东西上。 然后将thumbdrive设置为远程( git remote add thumb /media/thumbdrive ),将您的提交( git push thumb master ),然后返回到您的公司时,从驱动器拉出并推入原点。


你可以创建一个 (代表一个代表git仓库的文件,你可以从中获取),而不是创建一个补丁。
在你的情况下,需要一个增量包。

git bundle create ../yourRepo.bundle" --since=x.days.ago --all

x替换为您想要放入该捆绑包的天数:不要害怕在该回购库中放置“too mayn”天:从捆绑中克隆的人只会获得新的提交,而不是他/她已经曾在当地回购。

捆绑包是一个单独的文件,就像一个补丁一样,但可以用作Git仓库:易于复制和易于使用(作为常规的Git仓库)。
如果您唯一的用途是通过远程回购(您无法直接推送)完成一个本地回购,那么这比补丁更容易。

链接地址: http://www.djcxy.com/p/31759.html

上一篇: git create patch from unpushed commits

下一篇: Will remote URL for fetch and push be different?