Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to apply a git patch as if the author committed to my repo?

Tags:

git

commit

patch

Lets suppose there is a central repository where commits from satellite ones are pushed some time. Developer A makes some commits on his repo while B makes some on his own too.

Now, A wants to incorporate one of B's commits into his repo (which he cannot access directly to pull).

One way is to have B create a patch and send it to A but in that case there are two problems: 1. The patch will appear as local modifications to A who have then to commit it (with its own name) 2. Once the central repo is updated the changes will conflict (being pushed by two different authors).

Is there a way to have the patch applied directly "as a commit" on local A repo so that it will appear to him as if it were pulled from the central repo (i.e. origin)?

PS: (this might not apply: see comments: is there a way to strike text until verified?) After some more investigation and testing looks like also git am < git-formatted-patch would make it so that the patch appears committed to the local master (then I hope it will be recognized as the same commit when B pushes it to the central repo). It looks like it is git apply that leaves the patch uncommitted...

like image 951
a1an Avatar asked Mar 21 '13 15:03

a1an


People also ask

What is git patch command?

GIT patch or GIT diff is used to share the changes made by you to others without pushing it to main branch of the repository. This way other people can check your changes from the GIT patch file you made and suggest the necessary corrections.


1 Answers

git am is what you're looking for. Ask him to commit locally and do git format-patch. This will create a patch. You can then use git am to add it to your repo.

like image 182
stdcall Avatar answered Oct 25 '22 09:10

stdcall