Git - operacja poprawek

Patch to plik tekstowy, którego zawartość jest podobna do Git diff, ale wraz z kodem zawiera również metadane dotyczące zatwierdzeń; np. identyfikator zatwierdzenia, data, wiadomość o zatwierdzeniu itp. Możemy stworzyć łatkę z zatwierdzeń, a inne osoby mogą je zastosować w swoim repozytorium.

Jerry implementuje w swoim projekcie funkcję strcat. Jerry może stworzyć ścieżkę swojego kodu i wysłać ją do Tomka. Następnie może zastosować otrzymaną łatkę do swojego kodu.

Jerry używa Git format-patchpolecenie, aby utworzyć poprawkę dla ostatniego zatwierdzenia. Jeśli chcesz stworzyć łatkę dla określonego zatwierdzenia, użyjCOMMIT_ID za pomocą polecenia format-patch.

[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

Powyższe polecenie tworzy .patchpliki w bieżącym katalogu roboczym. Tom może użyć tej poprawki do modyfikacji swoich plików. Git udostępnia dwa polecenia do stosowania poprawekgit ami git applyodpowiednio. Git apply modyfikuje pliki lokalne bez tworzenia zatwierdzenia, podczas gdy git am modyfikuje plik i tworzy również commit.

Aby zastosować poprawkę i utworzyć zatwierdzenie, użyj następującego polecenia -

[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

Łatka została pomyślnie zastosowana, teraz możemy wyświetlić modyfikacje przy użyciu pliku git diff Komenda.

[tom@CentOS src]$ git diff

Powyższe polecenie da następujący wynik -

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)
   {