如何使用本地提交生成git补丁

MOH*_*MED 6 git

我正在为开源项目的开发做出贡献,该项目使用git作为源代码的存储库.

在对源代码进行一些修改后,我想生成一个包含我的签名(电子邮件地址和我的名字)的补丁,并将其发送给开源项目维护者.

我该怎么做?

MOH*_*MED 7

1)从git存储库下载源代码:

git clone git://address.of.repository/project/ /folder/path/on/my/computer
Run Code Online (Sandbox Code Playgroud)

2)对源代码进行一些修改.可以在项目中添加新文件/文件夹

3)为git commit签名设置你的电子邮件地址和你的名字:

git config --global user.name "Your Name"
git config --global user.email you@example.com
Run Code Online (Sandbox Code Playgroud)

执行此操作后,您可以使用以下命令修复用于此提交的标识:

git commit --amend --reset-author
Run Code Online (Sandbox Code Playgroud)

4)在提交更改之前.我们必须将新文件/文件夹添加到本地git存储库:

在源代码的项目文件夹下

git add <Newfolder>
git add <Newfile>
Run Code Online (Sandbox Code Playgroud)

4)然后在本地提交修改:

在源代码的项目文件夹下

commit -a
Run Code Online (Sandbox Code Playgroud)

这将打开一个交互窗口

您可以检查提交是否已检测到已编辑的文件和新文件:

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   bin/Makefile.am
#       modified:   configure.ac
#       new file:   src/new.c
Run Code Online (Sandbox Code Playgroud)

在窗口下commit -a,您必须输入注释以进行修改

然后使用Ctrl+ O(WriteOut)保存您的提交,然后Enter您的提交将立即保存

然后commit -aCtrl+ X(退出)退出窗口

5)现在您可以使用以下命令生成补丁:

在源代码的项目文件夹下

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

这将生成一个名称类似的补丁文件 0001-...-...-.. .patch

如果你想生成补丁signed-off-by只需添加-s:

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