Git – 补丁操作

Git – 补丁操作

补丁是一个文本文件,其内容类似于 Git diff,但除了代码,它还有关于提交的元数据;例如,提交 ID、日期、提交消息等。我们可以从提交中创建一个补丁,其他人可以将其应用到他们的仓库中。

Jerry为他的项目实现了strcat函数。杰里可以创建一个他的代码路径并发送给汤姆。然后,他可以把收到的补丁应用到他的代码中。

Jerry 使用 Git format-patch 命令为最新的提交创建一个补丁。如果你想为某个特定的提交创建补丁,那么在 format-patch 命令中使用 COMMIT_ID

[jerry@CentOS project]pwd
/home/jerry/jerry_repo/project/src

[jerry@CentOS src] git status -s
M string_operations.c
?? string_operations

[jerry@CentOS src]git add string_operations.c

[jerry@CentOS src] git commit -m "Added my_strcat function"

[master b4c7f09] Added my_strcat function
1 files changed, 13 insertions(+), 0 deletions(-)

[jerry@CentOS src]$ git format-patch -1
0001-Added-my_strcat-function.patch

上述命令在当前工作目录内创建了 .patch 文件。汤姆可以用这个补丁来修改他的文件。Git 提供了两个应用补丁的命令,分别是 git amgit applyGit apply 修改本地文件而不创建提交,而 git am 修改文件的同时也创建提交。

要应用补丁并创建提交,请使用下面的命令 —

[tom@CentOS src]pwd
/home/tom/top_repo/project/src

[tom@CentOS src] git diff

[tom@CentOS src]git status –s

[tom@CentOS src] git apply 0001-Added-my_strcat-function.patch

[tom@CentOS src]$ git status -s
M string_operations.c
?? 0001-Added-my_strcat-function.patch

补丁被成功应用,现在我们可以使用 git diff 命令来查看修改的内容。

[tom@CentOS src]$ git diff

上述命令将产生以下结果 –

diff --git a/src/string_operations.c b/src/string_operations.c
index 8ab7f42..f282fcf 100644
--- a/src/string_operations.c
+++ b/src/string_operations.c
@@ -1,5 +1,16 @@
#include <stdio.h>
+char *my_strcat(char *t, char *s)
diff --git a/src/string_operations.c b/src/string_operations.c
index 8ab7f42..f282fcf 100644
--- a/src/string_operations.c
+++ b/src/string_operations.c
@@ -1,5 +1,16 @@
#include <stdio.h>
+char *my_strcat(char *t, char *s)
+
{
   +
   char *p = t;
   +
   +
   +
   while (*p)
   ++p;
   +
   while (*p++ = *s++)
   + ;
   + return t;
   +
}
+
size_t my_strlen(const char *s)
{
   const char *p = s;
   @@ -23,6 +34,7 @@ int main(void)
   {

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程