补丁如何在Git中运行?

Pie*_*ter 29 git patch

我是Git的新手,但熟悉SVN.作为测试,我在本地目录中创建了一个存储库git init.然后我将空的存储库(通过SSH使用127.0.0.1,这是我想测试的另一件事)克隆到另一个本地目录.我在存储库2中添加了一些文件,我做了git add *,最后git commit -a -m "First source code".

我现在想要创建一个补丁git format-patch并将其应用于存储库1.我该怎么做?我知道有一本手册,但这些东西非常复杂,让我想对我的显示器做某些事情.

Jon*_*Jon 23

通过以下方式创建补丁

$ git format-patch master --stdout > patch.diff
Run Code Online (Sandbox Code Playgroud)

然后patch.diff将包含差异,然后您可以使用以下方式发送给其他人申请:

$ git am < patch.diff
Run Code Online (Sandbox Code Playgroud)

有时,当手册有点密集时,寻找教程是有意义的:

http://luhman.org/blog/2009/09/22/git-patch-tutorial


Jak*_*org 14

从上次提交(或最后几次提交)创建补丁的最简单方法是使用format-patch负数表示为以下内容创建补丁的提交数:

git format-patch -1
Run Code Online (Sandbox Code Playgroud)

您将获得一个以提交描述命名的补丁文件.使用am插入到另一个仓库:

git am << name_of_patch_file
Run Code Online (Sandbox Code Playgroud)

  • 只是一个挑剔; 但它不是负数,它只是表示深度的标志.没有奇怪的魔法发生!如果更自然,您还可以指定一系列提交,例如`git format-patch origin/master..`等等(请参阅git rev-parse手册,了解表达这些参数的所有方法). (3认同)